06-08、面向?qū)ο蟮娜筇匦裕憾鄳B(tài)的基本概念

Snip20170920_13.png
Snip20170920_14.png
Snip20170920_15.png
Snip20170920_17.png
#import <Foundation/Foundation.h>
#import "Dog.h"
#import "Cat.h"
#import "Animal.h"
#import "Person.h"
#import "Pig.h"

int main(int argc, const char * argv[]) {

/*
Dog *d = [Dog new];
[d eat];

Cat *c = [Cat new];
[c eat];
 */

/*
// 多態(tài): 事物的多種表現(xiàn)形態(tài)
// 動態(tài)類型: 在編譯的時候編譯器只會檢查當前類型對應的類中有沒有需要調(diào)用的方法
//          在運行時,系統(tǒng)會自動判斷a1的真實類型
Animal *a1 = [Dog new];
[a1 eat];

// 注意點: 在多態(tài)中, 如果想調(diào)用子類特有的方法必須強制類型轉(zhuǎn)換為子類才能調(diào)用
//    [a1 kanJia];
Dog *d1 = (Dog *)a1;
[d1 kanJia];
 */

Dog *d = [Dog new];
Cat *c = [Cat new];
Pig *p = [Pig new];

[Person food:d];
[Person food:c];
[Person food:p];
/*
 什么是多態(tài):
 事物的多種表現(xiàn)形態(tài)
 
 在程序中如何表現(xiàn):
 父類指針指向子類對象
 
 優(yōu)點:
 提高了代碼的擴展性
 
 注意點:
 如果父類指針指向子類對象, 如果需要調(diào)用子類特有的方法, 必須先強制類型轉(zhuǎn)換為子類才能調(diào)用
*/


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

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

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