本小節(jié)知識點:
- 【掌握】如何實現(xiàn)多態(tài)
- 【了解】多態(tài)的原理
- 【掌握】多態(tài)的注意點
1.如何實現(xiàn)多態(tài)
- Animal是父類,子類有Cat 和 Dog,子分別重寫了父類中的eat方法;實例化對象的時候可以用下
面的方法:
Animal *animal = nil;
//實例化貓的對象
animal = [Cat new];
[animal eat];
//實例化狗的對象
animal = [Dog new];
[animal eat];
2.多態(tài)的原理
- 動態(tài)綁定:
- 動態(tài)類型能使程序直到執(zhí)行時才確定對象的真實類型
- 動態(tài)類型綁定能使程序直到執(zhí)行時才確定要對那個對象調(diào)用的方法
- OC不同于傳統(tǒng)程序設(shè)計語言,它可以再運行時加入新的數(shù)據(jù)類型和新的程序模塊:動態(tài)類型識別,動態(tài)綁定,動態(tài)加載
- id類型:通用對象指針類型,弱類型,編譯時不進行具體類型檢查
3.多態(tài)的注意點
- 1)如果存在多態(tài),父類是可以訪問子類特有的方法
假設(shè) 子類 Dog 有一個特有的方法bark
[dog bark];
Animal *an2 = [Dog new];
[(Dog*)an2 bark]; //把父類的指針,強制類型轉(zhuǎn)換
- 2)如果不存在多態(tài),父類是不可以訪問子類特有的方法的
Animal *an3 = [Animal new];
[(Dog*)an3 bark]; //錯誤的,不能強制轉(zhuǎn)換
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者