色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

java 子類和父類的構(gòu)造函數(shù)順序

傅智翔2年前9瀏覽0評論

Java中,一個子類擴展它的父類。當(dāng)創(chuàng)建一個子類對象時,它會調(diào)用父類構(gòu)造函數(shù)和子類構(gòu)造函數(shù)。那么它們的執(zhí)行順序是怎樣的呢?

public class Parent {
public Parent() {
System.out.println("Parent Constructor");
}
}
public class Child extends Parent {
public Child() {
System.out.println("Child Constructor");
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
}
}

以上代碼會輸出以下結(jié)果:

Parent Constructor
Child Constructor

可以看到,父類構(gòu)造函數(shù)先于子類構(gòu)造函數(shù)執(zhí)行。

如果子類構(gòu)造函數(shù)中沒有顯式調(diào)用父類構(gòu)造函數(shù),Java會默認(rèn)調(diào)用父類的無參構(gòu)造函數(shù)。如果父類只有有參構(gòu)造函數(shù),則子類必須顯式調(diào)用父類的有參構(gòu)造函數(shù)。

public class Parent {
public Parent(int num) {
System.out.println("Parent Constructor With Parameter: " + num);
}
}
public class Child extends Parent {
public Child() {
super(10); // 顯式調(diào)用父類有參構(gòu)造函數(shù)
System.out.println("Child Constructor");
}
}
public class Test {
public static void main(String[] args) {
Child child = new Child();
}
}

以上代碼會輸出以下結(jié)果:

Parent Constructor With Parameter: 10
Child Constructor

可以看到,顯式調(diào)用了父類的有參構(gòu)造函數(shù)之后,父類構(gòu)造函數(shù)先于子類構(gòu)造函數(shù)執(zhí)行。