檢查程序,是否存在問(wèn)題,如果存在指出問(wèn)題所在,如果不存在,說(shuō)明輸出結(jié)果。 public class HelloB extends HelloA { public HelloB() { } { System.out.println("I’m B class"); } static { System.out.println("static B"); } public static void main(String[] args) { new HelloB(); } } class HelloA { public HelloA() { } { System.out.println("I’m A class"); } static { System.out.println("static A"); } }
解析 其中涉及:靜態(tài)初始化代碼塊、構(gòu)造代碼塊、構(gòu)造方法 當(dāng)涉及到繼承時(shí),按照如下順序執(zhí)行: 1、執(zhí)行父類(lèi)的靜態(tài)代碼塊 static { System.out.println("static A"); } 輸出:static A 2、執(zhí)行子類(lèi)的靜態(tài)代碼塊 static { System.out.println("static B"); } 輸出:static B 3、執(zhí)行父類(lèi)的構(gòu)造代碼塊 { System.out.println("I’m A class"); } 輸出:I'm A class 4、執(zhí)行父類(lèi)的構(gòu)造函數(shù) public HelloA() { } 輸出:無(wú) 5、執(zhí)行子類(lèi)的構(gòu)造代碼塊 { System.out.println("I’m B class"); } 輸出:I'm B class 6、執(zhí)行子類(lèi)的構(gòu)造函數(shù) public HelloB() { } 輸出:無(wú)
那么,最后的輸出為: static A static B I'm A class I'm B class 正確答案:C
|