麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

Objective-C中的封裝、繼承、多態、分類

2019-11-14 18:44:38
字體:
來源:轉載
供稿:網友

封裝的好處:

  1. 過濾不合理的值
  2. 屏蔽內部的賦值過程
  3. 讓外界不必關注內部的細節

繼承的好處:

  1. 不改變原來模型的基礎上,拓充方法

  2. 建立了類與類之間的聯系

  3. 抽取了公共代碼

  4. 壞處:耦合性強(當去掉一個父類,子類將不能再使用)

繼承的注意點:

  1. 子類和父類不能有相同的成員變量
  2. 子類可以重寫父類的方法
  3. 子類方法和屬性的訪問過程:如果子類沒有,就去訪問父類的

繼承和組合:

 1 @interface Score : NSObject 2 { 3         int _cScore; 4         int _ocScore;   5 } 6 @end 7  8 @implementation Score 9 @end10 11 @interface Student : NSObject12 {13        Score *_socre;  // 這里用到組合,因為不能說成績是個學生14        int _age;  15 }16 @end17 18 @implementation Student19 @end

組合和繼承可以這樣理解:

  • 繼承是 xxx 是 xxx
  • 組合是 xxx 擁有 xxx

多態:不同的對象已自己的方式響應相同名稱方法的能力稱為多態

多態簡單的說就是:父類指針指向子類對象

多態的好處:

  • 用父類接收參數,節省代碼
#import <Foundation/Foundation.h>@interface Animal : NSObject@end@implementation Animal- (void)eat{    NSLog(@"Animal----eat food");}@end@interface Dog : Animal@end@implementation Dog- (void)eat{    NSLog(@"Dog----eat food");}@end@interface Cat : Animal@end@implementation Cat- (void)eat{    NSLog(@"Cat----eat food");}@end// 參數中使用的父類類型,可以傳入子類、父類對象void feed(Animal *a){        [a eat];}// 這個函數體現了多態的好處,節省了代碼int main(){        Animal *aa = [[Animal alloc] init];        feed(aa);        Dog *dd = [[Dog alloc] init];        feed(dd);        Cat *cc = [[Cat alloc] init];        feed(cc);}

多態的局限性:

  • 父類類型的變量 不能 直接調用子類的特有方法 (要用到強制轉換)
// 強制轉換Person *p = [[Student alloc] init];// 假如學習是學生特有的方法,如果想調用需要強制轉換// OC是弱語法如果用[p study]也可以(是動態綁定),但由于編譯器會出現警告,所以不要這么寫用強制轉換 讓其更合理Student *s = (Student *)p;[s study];
  • 動態綁定:在運行時根據對象的類型確定動態調用的方法

分類-Category:

分類的作用:在不改變原來類內容的基礎上,可以為類增加一些方法 (便于合作開發)

分類的使用注意:

  1. 分類只能增加方法,不能增加成員變量
  2. 分類方法實現中可以訪問原來類中的聲明的成員變量
  3. 分類可以重新實現原來類中的方法,但會覆蓋掉原來類中的方法 ,會導致原來的方法不能使用(所以一般不會在分類中重現實現原來類中的方法)
  4. 方法調用的優先級:分類(最后參與編譯的分類優先)---> 原來類 ---> 父類

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产日韩a | 国产精品成人久久 | 精品一区二区中文字幕 | 中文字幕免费在线观看视频 | 4480午夜| 一级做a爱性色毛片免费1 | 意大利av在线| 深夜影院一级毛片 | 午夜精品成人一区二区 | 久久久久国产精品久久久久 | 国产精品久久久久久久久久三级 | 成人电影毛片 | 亚洲午夜久久久久 | 亚洲一区国产二区 | 欧美四级在线观看 | 国产精品观看在线亚洲人成网 | 一级免费a | 国产成人精品自拍视频 | 黑人操穴| 91久久精品国产亚洲 | 黄色高清av | 99激情视频 | 在线免费观看欧美 | 中国黄色一级生活片 | 欧美一级毛片特黄黄 | 午夜视频在线观 | caoporn国产一区二区 | 久久骚| 男女隐私免费视频 | v11av在线视频成人 | 欧美成人一区免费视频 | 成人小视频免费在线观看 | pornoⅹxxxxhd麻豆 | 91精品视频在线看 | 激情视频导航 | 福利在线国产 | 国产乱淫av片免费网站 | 一二区成人影院电影网 | 欧美 日韩 国产 成人 | mmmwww| 精品午夜影院 |