構件函式能在 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)

更新於: 30-7-2019

6K+ 瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始入門
廣告