有趣的網(wǎng)站設(shè)計最新百度關(guān)鍵詞排名
99-面向?qū)ο?進(jìn)階)-面向?qū)ο蟮奶卣魅?#xff1a;多態(tài)性_嗶哩嗶哩_bilibili
1.多態(tài)(僅限方法)
父類引用指向子類對象。
調(diào)用重寫的方法,就會執(zhí)行子類重寫的方法。
編譯看引用表面類型,執(zhí)行看實際變量類型。
2.父子同名屬性是否滿足多態(tài)?不滿足
滿足就近原則,父類引用調(diào)用一個父類子類的同名屬性,默認(rèn)調(diào)父類的屬性。
因為引用是父類的,調(diào)用的就是父類的屬性
3.為什么要多態(tài)
?
4.多態(tài)弊端
?不能直接調(diào)用子類里的方法和屬性,編譯通不過
5.向下轉(zhuǎn)型
父類引用不能直接使用子類特有的內(nèi)容,所以需要向下轉(zhuǎn)型‘
instanceof有點像golang的斷言
?向下轉(zhuǎn)型和強(qiáng)轉(zhuǎn)的用法很類似
6.轉(zhuǎn)型可能導(dǎo)致異常,因此需要判斷instanceof
如果實際類型不一致(woman不能轉(zhuǎn)man),編譯沒問題,但是運(yùn)行出錯。
需要判斷實例類型 ,
golang的斷言就類似于這里的instanceof + 強(qiáng)轉(zhuǎn)