Java静态方法能否被继承
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 { }
1、结论
结论是Java的静态方法和静态属性都可以被继承,但是他们不可以被重写(Overwrite)。
2、原因
- 静态方法和静态属性是属于类的,不是属于对象的。
- 不可以被重写,也就不能实现多态。
- 如果在子类中定义和父类一模一样的静态方法或静态属性,父类的静态方法和静态属性会被屏蔽。