建構函式可以在 Java 中設為 final 嗎?


不可以,建構函式無法設為 final。

任何子類都無法覆蓋 final 方法。如前所述,final 修飾符可以防止在子類中修改方法。

將方法設為 final 的主要目的是為了防止外部人員更改方法的內容。

但在繼承中,子類會繼承超類的成員,但建構函式除外。

換句話說,Java 中無法繼承建構函式,因此無需在建構函式前編寫 final。因此,Java 不允許在建構函式前使用 final 關鍵字。如果你嘗試這麼做,則會生成編譯時錯誤,如下例所示。

示例

public class Sample {
   public static void main(String args[]){
      int num;
      final public Sample(){
         num = 30;
      }
   }
}

輸出

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
   Syntax error, insert "enum Identifier" to complete EnumHeaderName
   Syntax error, insert "EnumBody" to complete BlockStatement
   Syntax error, insert ";" to complete Statement
   at newJavaExamples.Sample.main(Sample.java:6)

更新於: 2019 年 7 月 30 日

6 千多次瀏覽

啟動您的 職業

完成課程認證

開始學習
廣告