OC的多態(tài)

定義為父類的指針而初始化為其子類,這樣因為子類可能重寫父類的方法。相同類型的變量在調(diào)用同一個方法時就可能會出現(xiàn)多種不同的行為特征。

指針變量在編譯階段只能調(diào)用其編譯時類型所具有的方法,但運行時則執(zhí)行它運行時類型所具有的方法。因此,編寫OC代碼時,指針變量只能調(diào)用聲明該變量時所用類中包含的方法。而不能調(diào)用其初始化的類(運行時類型)的方法。

不過可以使用performSelector:來調(diào)用。

向上轉(zhuǎn)型(upcasting):

把子類對象賦給父類指針變量,總會成功 ?但將父類賦給子類時,可能會出錯

指針變量的強制類型轉(zhuǎn)換

只是改變了改制真變量編譯時的類型,但改變量所指向?qū)ο蟮膶嶋H類型不不會發(fā)生任何改變。如果不加判斷的甲乙轉(zhuǎn)換,轉(zhuǎn)換出來的變量在調(diào)用方法時就會引發(fā)錯誤。

判斷指針變量的實際類型:

-(BOOL)isKindOfClass:clazz: 判斷該對象是否為clazz或其子類的實例

-(BOOL)isSubclassOfClass:clazz:判斷該對象是否為clazz的子類的實例

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容