在Java中,當創建一個子類的對象時,構造方法的調用順序遵循以下規則:
首先調用父類(超類)的無參構造方法。如果父類沒有顯式定義無參構造方法,編譯器會自動為其生成一個默認的無參構造方法。
然后調用子類的構造方法。
這個順序是由Java語言規范定義的,以確保在子類構造方法執行之前,父類的狀態已經被正確初始化。
如果你需要在子類的構造方法中調用父類的有參構造方法,可以使用super
關鍵字。super
關鍵字后面跟著括號,括號內傳遞相應的參數。super
調用必須是子類構造方法中的第一個語句。
下面是一個簡單的例子:
class Parent {
Parent() {
System.out.println("Parent class constructor called");
}
Parent(String message) {
System.out.println("Parent class constructor called with message: " + message);
}
}
class Child extends Parent {
Child() {
super(); // 調用父類的無參構造方法
System.out.println("Child class constructor called");
}
Child(String message) {
super(message); // 調用父類的有參構造方法
System.out.println("Child class constructor called");
}
}
public class Main {
public static void main(String[] args) {
Child child1 = new Child();
System.out.println("-----");
Child child2 = new Child("Hello");
}
}
輸出:
Parent class constructor called
Child class constructor called
-----
Parent class constructor called with message: Hello
Child class constructor called
在這個例子中,我們創建了兩個子類對象:child1
調用了父類的無參構造方法,child2
調用了父類的有參構造方法。注意super
調用總是在子類構造方法的第一行。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。