1、繼承的好處:
1.1 繼承可以抽取重複的**,減少**量,提高**的利用性
1.2 物件導向的多型就是基於繼承
1.3 繼承建立了類與類之間的關係
1.4 子類可以擁有父類中的所有成員變數和方法
1.5 當子類想要擁有和父類同名但是不一樣的實現方式時,可以重寫父類的方法,提高**的靈活性
2、繼承的宣告
2.1 宣告和實現父類方法 :@inte***ce animal:nsobject @end
2.2 宣告子類,並在宣告子類後面繼承父類:@inte***ce dog:animal @end
3、方法的重寫
3.1 子類重新實現父類的某個方法,覆蓋父類以前的做法
3.2 父類必須宣告在子類的前面
3.3 子類不能擁有和父類相同的成員變數
3.4 呼叫某個方法時,優先在當前類中找;如果找不到,再到父類中找
4、繼承的壞處
4.1 類與類之前的偶合性太強
5、繼承的使用場合(繼承與組合)
5.1 繼承表示的是a類屬於b類,即a:b,或者a is b。當a是b的子集時,可以採用繼承的方式。比如狗是動物的一種,dog is animal,即可宣告為@inte***ce dog:animal
5.2 當a類不是b類的子集時,但是b類又需要擁有a類的部分屬性或方法,這時可以考慮使用組合的方式。組合表示的是b類擁有a類,即b has a。如學生類擁有成績類,即可用組合的方式。具體做法為宣告成績類和學生類。在學生類中宣告乙個成績類的成員變數,即表示學生類擁有成績類了。
#import @inte***ce animal:nsobject
- (void)setage:(int)age;
- (int)age;
- (void)setweight:(double)weight;
- (double)weight;
//物件方法:跑
- (void)run;
//類方法:test
+ (void)test;
@end
//animal類的實現
@implementation animal
- (void)setage:(int)age
- (int)age
- (void)setweight:(double)weight
- (double)weight
- (void)run
+ (void)test
@end
@inte***ce dog : animal
//子類不能擁有和父類相同名稱的成員變數
//int _age;
- (void)run;
+ (void)test2;
@end
@implementation dog
//重寫父類方法:子類重新實現父類中的某個方法,覆蓋父類以前的方法
- (void)run
/* //如果這一段沒有注釋的話,則下面的test2方法呼叫的是當前的test方法
+ (void)test
*/+ (void)test2
@end
@inte***ce cat:animal
@end
@implementation cat
@end
int main()
Objective C 一一 OC類的本質
1 什麼是類?類是用來描述物件的,是一系列屬性和方法的集合 可以通過乙個類來建立乙個物件,物件訪問該類中的屬性和方法.2 類的本質.2.1 類可以建立物件,但類本身其實也是乙個物件,這個物件會在這個類第一次被使用的時候建立.只要有類物件,就可以通過類物件來建立例項物件.例項物件中有乙個isa指標,指...
objective C程式 C與OC的對比
引入標頭檔案 c中的引入標頭檔案的方式 include include 沒有報錯 import 引入標頭檔案 為什麼引入import import 和include都是引入標頭檔案,import引入的標頭檔案可以防止重複包含 include他是使用預處理指令防止重複包含,如果沒有寫預處理指令,則無法...
objective C語言 第乙個OC程式
objective c是ios開發的基礎語言,以後簡稱oc 1 oc與c語言的標頭檔案的不同 import include一樣都是編譯預處理指令 import 功能與 include一樣也是把檔案內容拷貝到 import指令所在位置 import 與 include 是用來包含系統的標頭檔案的 im...