我在原問(wèn)題上加了一個(gè)輸出“7”;便于說(shuō)明父類(lèi)初始化的時(shí)間;
public class Test2 extends Test1 {
{
System.out. }
Test2() {
System.out.print("2");
}
static {
System.out.print("3");
}
{
System.out.print("4");
}
public static void main(String[] args) {
new Test2();
}
}
class Test1 {
{
System.out.print("7");
}
Test1() {
System.out.print("5");
}
static {
System.out.print("6");
}
}
程序執(zhí)行結(jié)果:6375142
調(diào)用順序:
1、先對(duì)類(lèi)進(jìn)行加載:初始化靜態(tài)變量,先初始化父類(lèi)的靜態(tài)變量,然后才是子類(lèi)的靜態(tài)變量;
2、對(duì)類(lèi)進(jìn)行初始化:在子類(lèi)初始化以前,先進(jìn)行父類(lèi)的初始化,以及父類(lèi)構(gòu)造器的調(diào)用;
3、最后初始化子類(lèi),調(diào)用子類(lèi)構(gòu)造方法;
在中文TIJ中,曾經(jīng)說(shuō)道父類(lèi)的構(gòu)造方法在子類(lèi)的構(gòu)造方法之前執(zhí)行,這樣說(shuō)雖然不是錯(cuò)誤的,但是是不
完善的,應(yīng)該是父類(lèi)的構(gòu)造方法在子類(lèi)初始化之前就已經(jīng)執(zhí)行了。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注