【Java基礎(chǔ)】代碼塊,成員變量,構(gòu)造器執(zhí)行順序
看完韓順平老師講的代碼塊部分的知識,做一個總結(jié),變成自己的東西。
去看一遍韓順平老師的視頻,再自己敲一遍,這塊就理清了。
執(zhí)行順序:先靜態(tài),后普通,再構(gòu)造器(構(gòu)造器中會先調(diào)用super,再調(diào)用普通代碼塊,普通屬性初始化),級別相同,誰在前誰先執(zhí)行。
在創(chuàng)建對象之前,要進(jìn)行類加載,先加載父類,再加載子類,所以要先執(zhí)行靜態(tài)成員和靜態(tài)代碼塊,并且靜態(tài)代碼塊和靜態(tài)成員只會被執(zhí)行一次。
在創(chuàng)建子類對象時,BBB的構(gòu)造器中隱藏了super(),和調(diào)用普通代碼塊,初始化普通成員。進(jìn)入AAA。
AAA已經(jīng)是父類了,進(jìn)入AAA的構(gòu)造器,調(diào)用普通成員和普通代碼塊,最后輸出aaa的構(gòu)造器被調(diào)用了,然后回到子類BBB,執(zhí)行普通代碼塊和初始化普通成員,最后輸出bbb的構(gòu)造器被調(diào)用了。

這塊其實(shí)不難,就是邏輯理清了就行。
標(biāo)簽: