static成员不依赖对象而存在,但说static不能继承恐怕不准确。用派生类也可以访问基类的static方法(当然要可见)。关于是不是覆盖,下面说明:
class a {
void m(){
System.out.println( "this is class a ");
};
}
class b extends a {
void m(){
System.out.println( "this is class b ");
};
}
class text {
public static void main() {
a a1 = new b();
a1.m();
}
结果:
this is class b
这是正常的覆盖行为。
然后在两个m()前加上static再看一下结果,你会发现:
this is class a
静态方法的调用根本不取决于对象的实际类型,而只是声明的类型。
所以,这也不是覆盖。 |