在每個子類實例化時,如果父類不是抽象類,都要先給父類實例化開辟空間。
然而抽象類無法實例化,那么當子類實例化的時候,抽象類中的非抽象屬性存在內存中的什么地方呢?
如果抽象類的某一個作用是節省內存空間,如果抽象類的屬性存儲在子類對象的內存空間中,是否會增加子類空間大???達不到節約空間的效果呢?
2 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
不是,這種派生關系對象不會因為你是某個某個對象的子類導致你在實例化時還要實例化父類,子類只是具有父類的特征,但不是說子類實例化還要帶一堆老子出來。
抽象類并沒有節省空間的作用,這些更多是面象對象的東西。
在實例化子類字段時會實例化父類的字段。內存開銷你可以忽略吧,這個不是現在這些高級語言的關注點,就算到了需要關注的場景也不是從這個地方下手。

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
從生命周期這個級別來看?
對象創建的時候 執行順序為
1.構造器
2.父類構造方法
3.子類構造方法?
通過這點可以看出 子類的創建 等于把父類的內容一并弄了一遍
添加回答
舉報
0/150
提交
取消