10 个解决方案
#1
对于覆盖有3种不能构成覆盖 1 方法是静态方法 2 被private修饰 3 被final修饰
lz可以自己编程实验!
lz可以自己编程实验!
#2
静态方法不构成多态 自然不能按多态的思路类
#3
静态方法无多态特性!
#4
不一样,采用父类类名调用的是调用父类中的方法,采用子类类名调用的是子类中的方法。
#5
一楼正解
#6
又学习到了~~~很好很强大~~`
#7
这种东西还要问,我学习的时候,这种东西一不查资料,二不问人,就是自己写代码试验。
#8
子类可以覆盖父类的静态方法,但不能变为非静态;
不一样。
不一样。
#9
学习了,虽然楼上的都讲的是正确的,我还是想记忆下:
多回复一遍:
1: private方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时父类决定调用的方法,运行时调用的方法是子类的方法
2: static 方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时引用类决定调用的方法,运行时调用的方法是引用类的方法
3: final 方法不能被继承和重写
不知道这样总结是不是可以,希望还有别人能总结的更好些.谢谢
多回复一遍:
1: private方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时父类决定调用的方法,运行时调用的方法是子类的方法
2: static 方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时引用类决定调用的方法,运行时调用的方法是引用类的方法
3: final 方法不能被继承和重写
不知道这样总结是不是可以,希望还有别人能总结的更好些.谢谢
#10
总结的第二点错了吧。static方法是可以被继承的。
测试代码:这段代码没报错,运行的时候也是输出了in m的,所以,是不是你总结错了。
测试代码:这段代码没报错,运行的时候也是输出了in m的,所以,是不是你总结错了。
package static_;
public class M {
public static void test() {
System.out.println("in m");
}
}
class T extends M {
public static void testtttttt() {
test();
System.out.println("in t");
}
}
#1
对于覆盖有3种不能构成覆盖 1 方法是静态方法 2 被private修饰 3 被final修饰
lz可以自己编程实验!
lz可以自己编程实验!
#2
静态方法不构成多态 自然不能按多态的思路类
#3
静态方法无多态特性!
#4
不一样,采用父类类名调用的是调用父类中的方法,采用子类类名调用的是子类中的方法。
#5
一楼正解
#6
又学习到了~~~很好很强大~~`
#7
这种东西还要问,我学习的时候,这种东西一不查资料,二不问人,就是自己写代码试验。
#8
子类可以覆盖父类的静态方法,但不能变为非静态;
不一样。
不一样。
#9
学习了,虽然楼上的都讲的是正确的,我还是想记忆下:
多回复一遍:
1: private方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时父类决定调用的方法,运行时调用的方法是子类的方法
2: static 方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时引用类决定调用的方法,运行时调用的方法是引用类的方法
3: final 方法不能被继承和重写
不知道这样总结是不是可以,希望还有别人能总结的更好些.谢谢
多回复一遍:
1: private方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时父类决定调用的方法,运行时调用的方法是子类的方法
2: static 方法不能被继承但可以重写:若重写: 父类 a=new 子类() a编译时引用类决定调用的方法,运行时调用的方法是引用类的方法
3: final 方法不能被继承和重写
不知道这样总结是不是可以,希望还有别人能总结的更好些.谢谢
#10
总结的第二点错了吧。static方法是可以被继承的。
测试代码:这段代码没报错,运行的时候也是输出了in m的,所以,是不是你总结错了。
测试代码:这段代码没报错,运行的时候也是输出了in m的,所以,是不是你总结错了。
package static_;
public class M {
public static void test() {
System.out.println("in m");
}
}
class T extends M {
public static void testtttttt() {
test();
System.out.println("in t");
}
}