OC物件導向之繼承

2021-06-27 12:01:27 字數 2957 閱讀 1148

一、繼承的基本概念

繼承是面向的三大特徵之一,指的是在乙個類的基礎上,定義乙個新類;原本的類成為父類(基類),新類稱為子類(派生類)。

生活中,繼承的例子也是數不勝數,比如乙個兒子繼承了他父親,那麼他就享受他父親的財產了,當然不是全部,詳細解釋見下文。

再如,乙個電器系列:

一層接著一層,電器為父類,下面的洗衣機、電腦、電視機都是電器的子類,下面的品牌名又是洗衣機、電腦、電視機的子類,當然也是電器的子類。

體現在**中,繼承的好處:

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中的繼承 ...