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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM