Objective C中的繼承

2021-08-20 22:33:58 字數 1148 閱讀 1988

1. 父類自身也可以有父類,沒有父類的類位於類層次的最頂層,稱為根類(父類也可以被稱為超類)。

2. 繼承中,父類的非私有例項變數和方法都會成為新類定義的一部分。子類可以直接訪問這些方法和例項變數,就像在類定義中直接定義了這些子類一樣。注意:在子類使用例項變數,必須在介面部分宣告,而不是在實現部分宣告。在實現部分宣告和合成(synthesize)的例項變數時私有的,子類並不能直接訪問,需要明確定義或合成取值方法,才能訪問例項變數的值。

3. 類的每個例項都擁有自己的例項變數,即使這些變數是繼承來的。

4. @class指令:使用@class指令可以提高效率,因為編譯器不需要引入和處理整個 class.h檔案(class是使用者自己定義的乙個類),只需要知道class是乙個類名。如果需要引用class類的方法(在實現部分中),@class指令是不夠的,因為編譯器需要更多的訊息。它需要清楚方法有多少引數、它們是什麼型別、方法的返回型別是什麼。

5.

#import #import "xypoint.h"

@inte***ce xypoint : nsobject

@property int x, y;

-(void) setx: (int) xval andy: (int) yval;

@end

-(void) setorigin:(xypoint *)pt

#import #import "rectangle.h"

#import "xypoint.h"

int main(int argc, const char * argv)

return 0;

}

當使用表示式myrect.origin = mypoint 呼叫setorigin:方法時,mypoint

的值作為引數傳遞給該方法。這個值指向儲存xypoint物件的記憶體,所以

在改變mypoint的值時,myrect.origin.x/y也會隨之改變,避免這個問題

的方法就是修改setorigin:方法,這樣就能夠建立自己的點,並將origin

設定為這個點。

6. 抽象類:建立類只是為了更容易建立子類,這些類名為抽象類(如

nsnumber類等)。每個具體的屬於如nsnumber類的抽象超類的子

類,總稱為簇。

Objective C中的繼承與復合技術

學習了objective c中有關類繼承的知識。紀錄如下 1 oop程式設計中有兩個技術 用於描述類與類或物件與物件之間的關係 乙個是繼承 另乙個是復合。2 在objective c中每個子類只能有乙個超類,這一點與c 不同。3 方法排程程式 該排程程式的功能非常重要,當乙個物件接收到乙個訊息後,排...

理解類的繼承(Objective C)

繼承的特點 1.objective c的繼承具有單繼承的特點,每乙個子類都只有乙個直接父類 每次只能繼承乙個父類,可以多次繼承 2.格式 inte ce subclass superclass 方法定義部分 endsubclass類繼承了superclass類 3.當子類擴充套件父類時,子類可以繼承...

Objective C實現多繼承

我們都知道objective c不能像c 一樣支援多繼承,但是在objective c的使用經常會碰到需要使用多繼承的情況。例如,classa中有methoda,classb中methodb,而現在需要使用這兩個類中的方法。如何按照c 的程式設計思路,毫無疑問採用多繼承就搞定了,在objective...