在 Java 中使用 super 關鍵字呼叫基類建構函式


在 Java 的面向物件正規化中,繼承扮演著重要的角色,它允許開發人員建立可以重用、擴充套件和修改其他類中定義的行為的類。為了促進超類與其子類之間無縫的互動,Java 提供了 super 關鍵字。本文將重點關注理解和有效地在 Java 中使用 super 關鍵字來呼叫基類建構函式。

探索 super 關鍵字

Java 中的 super 關鍵字是一個引用變數,用於引用直接父類物件。每當你建立一個子類的例項時,也會建立一個父類的例項,該例項由 super 關鍵字引用。

super 關鍵字主要有三個用途 -

  • 它可以用來引用直接父類的例項變數。

  • 它可以用來呼叫直接父類的方法。

  • 它可以用來呼叫直接父類的建構函式

在本文中,我們將深入探討第三種用途:呼叫父類建構函式。

使用 Super 呼叫基類建構函式

在 Java 中,建構函式是一段初始化新建立物件的程式碼塊。子類繼承超類的欄位和方法,但它不能繼承建構函式。但是,子類建構函式可以使用 super 關鍵字呼叫超類建構函式。

建立子類物件時,超類的建構函式先執行,然後是子類的建構函式。如果子類建構函式沒有顯式呼叫超類建構函式,Java 編譯器會自動插入一個無參的 super() 呼叫。但是,如果超類沒有無參建構函式,則子類必須使用 super 顯式呼叫超類建構函式之一。

這是一個簡單的例子

class Superclass {
   int age;
   Superclass(int age) {
      this.age = age;
   }
}
class Subclass extends Superclass {
   Subclass(int age) {
      super(age);
   }
}

在這個例子中,Subclass 使用 super(age) 呼叫 Superclass 的建構函式。此呼叫必須是 Subclass 建構函式中的第一條語句。

理解呼叫超類建構函式的重要性

在許多情況下,呼叫超類建構函式至關重要。例如,它允許子類繼承並初始化來自超類的狀態。它還確保在超類建構函式中定義的任何初始化邏輯都得到執行。如果超類設計為與子類一起工作或實現了“模板方法”設計模式,這一點尤其重要。

使用 Super 時需要記住的事項

在 Java 中使用 super 關鍵字時,請記住以下幾點 -

  • 第一條語句 - 對 super() 的呼叫必須是每個建構函式中的第一條語句

  • 自動呼叫 - 如果建構函式沒有顯式呼叫超類建構函式,Java 編譯器會自動插入對超類無參建構函式的呼叫。

  • 引數匹配 - 傳遞給 super() 的引數必須與超類建構函式之一的引數型別和順序匹配。

結論

Java 中的 super 關鍵字提供了一種強大的方法來增強和控制從超類繼承的行為。透過使用 super 呼叫基類建構函式,您可以確保您的子類正確初始化,並充分利用超類中定義的程式碼。

更新於: 2023年7月19日

768 次瀏覽

啟動您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.