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 {
}