Objective C 07 OC物件的繼承

2021-06-27 14:57:38 字數 1703 閱讀 8545

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...