黑馬程式設計師 繼承

2021-06-22 12:57:52 字數 3866 閱讀 6738



黑馬程式設計師_繼承

一、黑馬程式設計師_繼承1基本使用

#import /*******animal的宣告********/

@inte***ce animal : nsobject

- (void)setage: (int)age;

- (int)age;

- (void)setweigth: (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

int main()

二、黑馬程式設計師_繼承2繼承的好處

#import /*

1.繼承的好處:

* 抽取重複**

* 建立了類之間的關係

* 子類可以擁有父類中的所有成員變數和方法

2.注意點

* 基本上所有類的根類是nsobject

*//*******animal的宣告********/

@inte***ce animal : nsobject

- (void)setage: (int)age;

- (int)age;

- (void)setweigth: (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

int main()

三、黑馬程式設計師_繼承3使用注意

/*

1.重寫: 子類重新實現父類中的某個方法; 覆蓋父類以前的方法; 成員變數不可重寫.

2.注意

* 父類必須 《宣告》 在子類的前面

* 子類不能擁有和父類相同的成員變數

* 呼叫某個方法時,優先去當前類中找,如果找不到,去父類中找。

3.壞處: 耦合性太強

*/#import // person; 父類要寫在前面

@inte***ce person : nsobject

- (void)setage: (int)age;

- (int)age;

- (void)run;

+ (void)test;

@end

@implementation perosn

+ (void)test

- (void)run

- (void)setage: (int)age

- (int)age

@end

// student

@inte***ce student : person

- (void)run;

+ (void)test;

+ (void)test2;

@end

@implementation student

// 重寫: 子類重新實現父類中的某個方法; 覆蓋父類以前的方法; 成員變數不可重寫.

- (void)run

+ (void)test

+ (void)test2

@end

int main()

四、黑馬程式設計師_繼承4繼承和組合

/*

繼承使用場合:

1.當兩個類擁有相同屬性和方法的時候,就可以將相同的東西抽取到乙個父類中。

2.當a類完全擁有b類的屬性和方法的時候,可以考慮讓b類繼承a類。

繼承: ***是***

a {}

b : a

{} 組合: ***擁有***

a {}

b */

#import @inte***ce score : nsobject

@end

@implementation score

@end

// 繼承: *** 是 ***

// 組合: *** 擁有 ***

@inte***ce student : score // 不符合邏輯

@end

@implementation student

@end

int main()

五、黑馬程式設計師_繼承5super

#import /*

super的作用:

1.直接呼叫父類中的某個方法

2.super處在物件方法中,那麼就會呼叫父類的物件方法

super處在類方法中,那麼就會呼叫父類的類方法

3.使用場合:子類重寫父類的方法時想保留父類的一些行為

*//*

殭屍 跳躍殭屍、舞王殭屍、鐵桶殭屍

*/// zoombie 殭屍類

@inte***ce zoombie : nsobject

- (void)walk;

+ (void)test;

- (void)test;

@end

@implementation zoombie

+ (void)test

- (void)test

- (void)walk

@end

// jumpzoombie 跳躍殭屍類

@inte***ce jumpzoombie : zoombie

+ (void)haha;

- (void)haha2;

@end

@implementation jumpzoombie

- (void)haha2

+ (void)haha

- (void)walk

@end

int main()

黑馬程式設計師 繼承

asp.net android io開發s net培訓 期待與您交流!c 的繼承與 c 等語言乙個重要的不同,就是只能從乙個類中繼承,這是開發者在權衡了從多個類c 繼承的優勢與劣勢作出的結果。不過,可以從介面繼承。另外,繼承可傳遞。建構函式和析構函式不能被繼承。c 繼承中的重寫 1 virtual ...

黑馬程式設計師 繼承

乙個類宣告的基類說明中只能有乙個單獨的類,單繼承性 雖然類只能直接繼承乙個基類,但繼承的層次沒有限制 隱藏基類的成員 1.宣告乙個新的相同型別的成員,並使用相同的名稱 不包括返回型別 2.要讓編譯器知道你在故意隱藏繼承的成員,使用 new修飾符 基類訪問 可以使用基類訪問表示式訪問隱藏的基類成員 基...

黑馬程式設計師 繼承

asp.net unity開發 net培訓 期待與您交流!小結關於繼承的一些基本重要知識點 1 c 中任何乙個類都是繼承自object類。2 如果乙個類沒有顯示繼承自object類,那麼它預設繼承自object類。3.如果乙個類顯示當前繼承自某個類,則將覆蓋預設繼承的object類。4 繼承的傳遞性...