首頁 > Java > java教程 > 為什麼在Java中構造函式不能是final的?

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

PHPz
發布: 2023-08-20 19:01:22
轉載
1488 人瀏覽過

為什麼在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板