在Java中,子類構造方法可以通過使用super()
關鍵字來調用父類的構造方法。super()
必須在子類構造方法的第一行調用。如果子類構造方法沒有顯式地調用父類構造方法,編譯器會自動插入一個無參數的super()
調用。
以下是一個簡單的例子:
// 父類
public class Parent {
public Parent() {
System.out.println("Parent class constructor called");
}
public Parent(String message) {
System.out.println("Parent class constructor called with message: " + message);
}
}
// 子類
public class Child extends Parent {
public Child() {
super(); // 調用父類的無參數構造方法
System.out.println("Child class constructor called");
}
public Child(String message) {
super(message); // 調用父類的帶參數構造方法
System.out.println("Child class constructor called with message: " + message);
}
}
在這個例子中,Child
類繼承了Parent
類。Child
類有兩個構造方法,一個無參數,一個帶參數。在每個構造方法中,我們使用super()
關鍵字來調用父類相應的構造方法。當我們創建一個Child
對象時,將按照以下順序調用構造方法:
public static void main(String[] args) {
Child child1 = new Child(); // 輸出:Parent class constructor called
// 輸出:Child class constructor called
Child child2 = new Child("Hello"); // 輸出:Parent class constructor called with message: Hello
// 輸出:Child class constructor called with message: Hello
}
注意,如果子類構造方法沒有顯式地調用父類構造方法,編譯器會自動插入一個無參數的super()
調用。但是,如果父類沒有無參數構造方法,那么子類必須顯式地調用父類的帶參數構造方法,否則會導致編譯錯誤。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。