首頁  >  文章  >  Java  >  為什麼在Java中構造函式不能是final的?

為什麼在Java中構造函式不能是final的?

PHPz
PHPz轉載
2023-08-20 19:01:221459瀏覽

為什麼在Java中構造函式不能是final的?

每當你將一個方法宣告為final時,你就無法覆寫它。也就是說,你不能為子類別提供超類別的final方法的實作。

也就是說,將一個方法宣告為final的目的是防止從外部(子類別)修改該方法。

在繼承中,當你擴展一個類別時,子類別會繼承超類別的所有成員,除了建構子。

換句話說,建構子不能在Java中被繼承,因此你不能覆寫建構子。

因此,在建構子前面加上final沒有意義。因此,Java不允許在建構函式前使用final關鍵字。

如果你嘗試將建構函式宣告為final,將會產生一個編譯時錯誤,提示「modifier final not allowed here」。

範例

在下列Java程式中,Student類別有一個被宣告為final的建構子。

示範

public class Student {
   public final String name;
   public final int age;
   public final Student() {
      this.name = "Raju";
      this.age = 20;
   }
   public void display() {
      System.out.println("Name of the Student: "+this.name );
      System.out.println("Age of the Student: "+this.age );
   }
   public static void main(String args[]) {
      new Student().display();
   }
}

編譯時錯誤

在編譯時,上述程式會產生以下錯誤。

Student.java:6: error: modifier final not allowed here
   public final Student(){
                ^
1 error

以上是為什麼在Java中構造函式不能是final的?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除