8 回答

TA貢獻1779條經(jīng)驗 獲得超6個贊
你可以試試這樣理解,繼承是通過引用傳遞,子類是繼承的父類,父類的屬性和方法,那么內(nèi)存里面就肯定父類的全部屬性和方法。
然你在子類覆蓋父類的方法,其實相當(dāng)于把指針從父類的a()方法移動到子類的覆蓋的a()來,實際父類的a()還是存在的,并不會真的從內(nèi)存里面把父類的a()方法替換掉。
繼承的引用傳遞:是指在內(nèi)存中,父類的代碼只有一份,如內(nèi)存地址是0x000010,當(dāng)子類去繼承的時候,是直接從這個內(nèi)存地址去讀取父類的代碼。而不會重新把代碼拷貝一份到內(nèi)存里面來。

TA貢獻1840條經(jīng)驗 獲得超5個贊
個人對繼承的理解:
父類已有的方法,繼承父類的子類是默認(rèn)有的(方法和屬性)。但是子類可以選擇去重寫父類的方法,這樣的話,子類在調(diào)用這些被重寫的方法的時候,就會優(yōu)先去調(diào)用子類修改的方法,而如子類沒有修改該方法的時候,就會默認(rèn)調(diào)用父類的該方法。
對于樓主說的繼承是引用傳遞,個人認(rèn)為繼承的時候默認(rèn)這些方法和屬性是指向父類的,但是在實際調(diào)用的時候,會去檢測子類有沒有重寫父類的方法或者屬性,如果有的話,實際調(diào)用就會指向子類重寫的方法和屬性,沒有的話,依然是指向父類的方法和屬性。
個人愚見...

TA貢獻1843條經(jīng)驗 獲得超7個贊
子類是繼承的父類,父類的屬性和方法,子類可以繼承,但是不能改變父類,子類只有一個父類,但是,父類可以有很多子類,如果子類更改了父類的屬性和方法那其本身不是就需要再次繼承新的方法和屬性?這就無解了。。。

TA貢獻1831條經(jīng)驗 獲得超10個贊
我繼承父類的方法,相當(dāng)于把父類的所有方法再我的類里面寫了一遍,而和我現(xiàn)有的有沖突的方法,我不寫進來就是了。就是說父類有內(nèi)沒有的就繼承,父類有,你也有,就以你為準(zhǔn)。
添加回答
舉報