Java静态方法能否被继承?

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 {
}
原文地址:https://www.cnblogs.com/doubest/p/12803088.html