Java靜態方法能否被繼承
1、結論
結論是Java的靜態方法和靜態屬性都可以被繼承,但是他們不可以被重寫(Overwrite)。
2、原因
- 靜態方法和靜態屬性是屬於類的,不是屬於對象的。
- 不可以被重寫,也就不能實現多態。
- 如果在子類中定義和父類一模一樣的靜態方法或靜態屬性,父類的靜態方法和靜態屬性會被屏蔽。
3、代碼分析
public class Main {
public static void main(String[] args) {
B b = new B();
b.staticMethod(); // B靜態方法
A a = b;
a.staticMethod(); // A靜態方法
C c = new C();
c.staticMethod(); // A靜態方法
}
}
class A { //父類
public static void staticMethod() {
System.out.println("A靜態方法");
}
}
class B extends A {
public static void staticMethod() {
System.out.println("B靜態方法");
}
}
class C extends A {
}