黑馬程式設計師_繼承
一、黑馬程式設計師_繼承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 繼承的傳遞性...