首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 子類定義同名靜態常量不構成覆寫,各自獨立

     編輯:程式設計綜合問答

結論

子類可以定義與父類同名的 static final 常量,但這不是覆寫,兩者在各自類中獨立存在,無多態行為。

代碼驗證

class Parent {
    static final String CONST = "PARENT";
}
class Child extends Parent {
    static final String CONST = "CHILD";
}
public class Test {
    public static void main(String[] args) {
        System.out.println(Parent.CONST); // PARENT
        System.out.println(Child.CONST);  // CHILD
        System.out.println(((Parent) new Child()).CONST); // PARENT!編譯期靜態綁定
    }
}

關鍵點

  • 靜態成員(字段/方法)屬於類,編譯期根據引用類型綁定,而非運行時對象類型。
  • 子類同名靜態常量稱為隱藏,而非覆寫。
  • 實例方法才有覆寫與多態;靜態方法/字段無多態。

用戶頭像 圖片

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved