对父类方法的覆盖是我们经常做的,但如果你尝试去覆盖父类静态方法,会产生什么结果呢?当然可能你已经知道并不是所有方法都会被真正覆盖,因为只有非静态的方法才能被真正覆盖。
class Sup{
static void foo(){
System.out.println("Sup.foo() not be overrided...");
}
void foo2(){
System.out.println("Sup.foo2() not be overrided...");
}
}
public class Sub extends Sup{
static void foo(){
System.out.println("Sub.foo() ...");
}
void foo2(){
System.out.println("Sub.foo2()...");
}
public static void main(String args[]){
Sup s=new Sub();
s.foo();
s.foo2();
}
}
输出结果为:
Sup.foo() not be overrided...
Sub.foo2()...