一、繼承的基本概念
繼承是面向的三大特徵之一,指的是在乙個類的基礎上,定義乙個新類;原本的類成為父類(基類),新類稱為子類(派生類)。
生活中,繼承的例子也是數不勝數,比如乙個兒子繼承了他父親,那麼他就享受他父親的財產了,當然不是全部,詳細解釋見下文。
再如,乙個電器系列:
一層接著一層,電器為父類,下面的洗衣機、電腦、電視機都是電器的子類,下面的品牌名又是洗衣機、電腦、電視機的子類,當然也是電器的子類。
體現在**中,繼承的好處:
1)抽取了重複的**
2)使類與類之間有關係可循
二、oc中的繼承
1)特點 第
一、子類擁有父類的屬性和方法;
第二、子類可以有自己新的屬性和方法;
第三、子類可以重寫父類的方法;
第四、可以宣告父類,建立子類。
2)好處
1,提高了**的復用性。
2,讓類與類之間產生了關係,給第三個特徵多型提供了前提.
示例**:
宣告:
/*
1.繼承的好處:
1> 抽取重複**
2> 建立了類之間的關係
3> 子類可以擁有父類中的所有成員變數和方法
2.注意點
1> 基本上所有類的根類是nsobject
*//********animal的宣告*******/
@inte***ce animal : nsobject
- (void)setage:(int)age;
- (int)age;
- (void)setweight:(double)weight;
- (double)weight;
@end
實現部分:
/********animal的實現*******/
@implementation animal
- (void)setage:(int)age
- (int)age
- (void)setweight:(double)weight
- (double)weight
@end
/********dog*******/
// : animal 繼承了animal,相當於擁有了animal裡面的所有成員變數和方法
// animal稱為dog的父類
// dog稱為animal的子類
@inte***ce dog : animal
@end
@implementation dog
@end
/********cat*******/
@inte***ce cat : animal
@end
@implementation cat
@end
執行程式:
#import int main()
三、繼承的注意點注意:1> 父類必須宣告在子類的前面
2> 子類不能擁有和父類相同的成員變數
3> 呼叫某個方法時,優先去當前類中找,如果找不到,去父類中找
當要使用乙個繼承體系時,
1,檢視該體系中的頂層類,了解該體系的基本功能。
2,建立體系中的最子類物件,完成功能的使用。
什麼時候定義繼承呢?
當類與類之間存在著所屬關係的時候,就定義繼承。***是yyy中的一種。
所屬關係: is a 關係。
四、方法的重寫
重寫:子類重新實現父類中的某個方法,覆蓋父類以前的做法
**示例:
#import // person
@inte***ce person : nsobject
- (void)setage:(int)age;
- (int)age;
- (void)run;
+ (void)test;
@end
@implementation person
+ (void)test
- (void)run
- (void)setage:(int)age
- (int)age
@end
// 不允許子類和父類擁有相同名稱的成員變數
// student
@inte***ce student : person
+ (void)test2;
@end
@implementation student
// 重寫:子類重新實現父類中的某個方法,覆蓋父類以前的做法
- (void)run
+ (void)test2
@end
int main()
五、繼承的使用場合繼承的使用場合
1> 當兩個類擁有相同屬性和方法的時候,就可以將相同的東西抽取到乙個父類中
2> 當a類完全擁有b類中的部分屬性和方法時,可以考慮讓b類繼承a類
a
b : a
// 繼承:xx 是 ***
// 組合:*** 擁有 ***
繼承 vs 組合:
a
b
OC物件導向 繼承
oc物件導向 繼承 一 基本概念 程式的世界和人類的 物件 世界在思想上是沒有設麼區別的,富二代繼承了父母,自然就擁有了父母擁有的所有資源,子類繼承了父類同樣就擁有了父類所有的方法和屬性 成員變數 在這裡動物是貓類和狗類的父類,黑貓和白貓類是貓類的子類。繼承的好處 1 抽取出了重複的 2 建立了類和...
OC物件導向 繼承
oc物件導向 繼承 一 基本概念 程式的世界和人類的 物件 世界在思想上是沒有設麼區別的,富二代繼承了父母,自然就擁有了父母擁有的所有資源,子類繼承了父類同樣就擁有了父類所有的方法和屬性 成員變數 在這裡動物是貓類和狗類的父類,黑貓和白貓類是貓類的子類。繼承的好處 1 抽取出了重複的 2 建立了類和...
OC物件導向 繼承
oc物件導向 繼承 一 基本概念 程式的世界和人類的 物件 世界在思想上是沒有設麼區別的,富二代繼承了父母,自然就擁有了父母擁有的所有資源,子類繼承了父類同樣就擁有了父類所有的方法和屬性 成員變數 繼承的好處 1 抽取出了重複的 2 建立了類和類之間的聯絡 繼承的缺點 耦合性太強 二 oc中的繼承 ...