程式的世界和人類的「物件」世界在思想上是沒有設麼區別的,富二代繼承了父母,自然就擁有了父母擁有的所有資源,子類繼承了父類同樣就擁有了父類所有的方法和屬性(成員變數)。
在這裡動物是貓類和狗類的父類,黑貓和白貓類是貓類的子類。
繼承的好處:
抽取出了重複的**
建立了類和類之間的聯絡
繼承的缺點:
耦合性太強
@inte***ce
animal:nsobject
//動物裡繼承了nsobject,獲得nsobject類的方法;
@end
@inte***ce
dog :animal
//dog類繼承animal類
@end
注意:oc語言是單繼承語言。在oc語言中,基本上所有類的根類都是nsobject類。編譯器從上往下執行,所以在子類前面至少應該要有父類的宣告;
oc中不允許子類和父類擁有相同名稱的成員變數名;
oc中的子類可以擁有和父類相同名稱的方法,在子類呼叫時,優先去自己的內部尋找,如果沒有則一層一層的往上找;
示意圖:一共有三個類,person類繼承了nsobject類,student類繼承了person類。
建立乙個student *s=[[student alloc] init];
此時會把student類和這個類的父類載入進記憶體。
繼承的適用場合:
當兩個類擁有相同的屬性和方法時,就可以將相同的屬性和方法抽取到乙個父類中。
當a類完全擁有b類中的部分屬性和方法時,可以考慮讓b類繼承a類(考慮),在這種情況下,也可以考慮使用組合。
繼承:###是***,如狗是動物,可以讓狗繼承動物類
組合:###擁有***,如學生有書,可以讓書這個類作為學生類的屬性
super關鍵字,在子類中重寫方法時,可以讓呼叫者跳過這一層而呼叫父類中的方法。
作用:直接呼叫父類中的某乙個方法
super處在物件方法中,那麼就會呼叫父類的物件方法;super處於類方法中,那麼就會呼叫父類的類方法。
使用場景:子類在重寫父類方法時,想要保留父類的一些行為。
OC語言 復合與繼承
1.復合 1.0 復合與繼承 描述類與類或物件與物件之間的關係有兩種方式 1.繼承 2.復合 繼承可以定義乙個具有父類所有功能的新類。復合,物件可以引用其它物件。區別 復合 has a car has a tire 包含關係 繼承 is a a male is a person 隸屬關係 1.1 復...
OC語言 三大特性 繼承與多型
繼承是oc中比較常見的。1 繼承 就是當兩個類擁有相同的屬性和方法時,就可以將相同的東西抽取到乙個父類中。子類可以擁有父類中所有的成員變數和方法。2 繼承的好處 可以抽取重複 節省時間。建立了類之間的關係。3 使用注意 父類必須寫在子類前面 子類不能擁有和父類相同的名稱的成員變數 當呼叫某個方法時,...
OC語言 OC語言基礎 類
1 oc檔案的擴充套件名為.m c 2 oc語言完全相容 c語言,即 oc語言中可以寫 c語言 3 oc語言也可以寫 c 語言,但是如果要寫 c 語言,則 oc擴充套件名為 mm 4 oc語言是在 c語言的基礎上增加了最小層的物件導向語言 型別oc語言 c語言關鍵字 基本上所有的都以 開頭 publ...