子類對象實(shí)例化全過程

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

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

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

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

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

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

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

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

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

從過程上看:

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

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

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


分享本文至:

日歷

鏈接

個(gè)人資料

存檔