子類(lèi)對(duì)象實(shí)例化全過(guò)程

2020-2-19    seo達(dá)人

標(biāo)準(zhǔn)格式注意:

super()和this()調(diào)用語(yǔ)句不能同時(shí)在一個(gè)構(gòu)造器中。

super()或this()調(diào)用語(yǔ)句只能作為構(gòu)造器中的第一句出現(xiàn)。原因:

無(wú)論通過(guò)哪個(gè)構(gòu)造器創(chuàng)建子類(lèi)對(duì)象,需要保證先初始化父類(lèi)。

目的是,當(dāng)子類(lèi)繼承父類(lèi)后,“繼承”父類(lèi)所有的屬性和方法,因此子類(lèi)有必要知道父類(lèi)如何為對(duì)象進(jìn)行初始化。

從結(jié)果上看:繼承性

子類(lèi)繼承父類(lèi)以后,就獲取了父類(lèi)中聲明的屬性或方法。

創(chuàng)建子類(lèi)的對(duì)象,在堆空間中,就會(huì)加載所父類(lèi)中聲明的屬性。

從過(guò)程上看:

當(dāng)我們通過(guò)子類(lèi)的構(gòu)造器創(chuàng)建子類(lèi)對(duì)象時(shí),我們一定會(huì)直接或間接的調(diào)用其父類(lèi)的構(gòu)造器,進(jìn)而調(diào)用父類(lèi)的父類(lèi)的構(gòu)造器,…直到調(diào)用了java.lang.Object類(lèi)中空參的構(gòu)造器為止。正因?yàn)榧虞d過(guò)所的父類(lèi)的結(jié)構(gòu),所以才可以看到內(nèi)存中父類(lèi)中的結(jié)構(gòu),子類(lèi)對(duì)象才可以考慮進(jìn)行調(diào)用。

強(qiáng)調(diào)說(shuō)明:

雖然創(chuàng)建子類(lèi)對(duì)象時(shí),調(diào)用了父類(lèi)的構(gòu)造器,但是自始至終就創(chuàng)建過(guò)一個(gè)對(duì)象,即為new的子類(lèi)對(duì)象。


日歷

鏈接

個(gè)人資料

存檔