亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

這是一個有難度的問題:請問,在創造子類對象時,會自動調用父類構造方法,然后再調用子類構造方法,那么它有沒有創造父類對象呢?

請問,在創造子類對象時,會自動調用父類構造方法,然后再調用子類構造方法,那么它有沒有創造父類對象呢?

正在回答

2 回答

對于常規意義上的對象,如果將對象看為可以引用的類變量實例,那當然是沒有;不過的確創建子類時的確在內存中開辟了一個內存區建立了父類(包括private)在內的實例域,但父類對應內存無法直接引用無法簡單成為對象(在編譯器層次上可以將這個內存等同于一個父類對象處理,這需要高超的技巧)。因此物理內存概念和java語言層次就能很好理解這個問題。

0 回復 有任何疑惑可以回復我~
#1

M_Yee

其實子類內部的super就是一個很好的說明
2018-12-04 回復 有任何疑惑可以回復我~

參考了別人的問題,我自己來答。

答案是沒有。參見帖子

精彩答案:

一個對象可以理解為一個房子,而一個類只是規定了什么地方要放什么東西,比如客廳要放沙發,餐廳要有餐桌
創建一個新對象,就是建造一棟新房子,如果你不去初始化對象,那么這個房子就是空的,沒有任何裝飾家具,你也不能用它來做任何有意義的事(當然這只是個比喻,空房子不能說沒有用)
當調用構造函數時,才會真正讓這個對象有意義,那就是布置這個房子,布置這個房子有很多設計師,子類和父類就是兩個設計師,他們之間的關系可以理解為父類設計師是子類設計師的指導,首先子類會讓父類先來,父類說他要A?B?C?D?E等等,于是就叫人搬來這些東西放在房子里,父類布置好了,子類就來布置了,子類就會繼續在房子里添置家具等等,有時候父類和子類會有沖突,比如父類說瓷磚地板好,子類說木地板好,這時候以子類為準,因為最終這個房子是給子類的,父類只是一個顧問指導而已,這就相當于方法重寫。

所以如果你說創建一個子類對象會不會同時也創建了父類對象,那答案肯定是沒有
說有的如果他的意思是這個子類對象在某個時刻完全是一個父類對象,因為那個時刻他具備了父類對象所有的特征,但不具備子類的特征,那還是可以接受的,但這個過程只會創建一個對象,如果說有的認為創建了兩個或者更多的對象,那肯定是錯誤的。

出處:帖子第九樓

2 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這是一個有難度的問題:請問,在創造子類對象時,會自動調用父類構造方法,然后再調用子類構造方法,那么它有沒有創造父類對象呢?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號