package demo;
public class Test3 { public static void main(String[] args) { new B().run(); }}
class A{ static{ System.out.PRintln("A static ;"); } { System.out.println("A defalult ;"); } A(){ System.out.println("A Class"); } void run(){ System.out.println("A run"); }}
class B extends A{ static{ System.out.println("B static ;"); } { System.out.println("B defalult ;"); } B(){ System.out.println("B Class"); } void run(){ System.out.println("B run"); }}
運(yùn)行結(jié)果:
A static ;B static ;A defalult ;A ClassB defalult ;B ClassB run
總結(jié) : 生命子類(lèi)對(duì)象時(shí) 總是先去加載父類(lèi)的靜態(tài)代碼塊,然后加載子類(lèi)的靜態(tài)代碼塊(靜態(tài)代碼永遠(yuǎn)是最先加載的),然后會(huì)加載父類(lèi)中的默認(rèn)代碼塊 和父類(lèi)構(gòu)造方法,然后是子類(lèi).
優(yōu)先級(jí): 靜態(tài)代碼塊>代碼塊>構(gòu)造方法 父類(lèi)優(yōu)先于子類(lèi)
注意: 新建子類(lèi)對(duì)象時(shí) 必須會(huì)加載父類(lèi)構(gòu)造器!
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注