ObjC繼承中判斷類歸屬的問題

2021-07-01 20:48:39 字數 1336 閱讀 4097

objc的乙個特點就是動態型別(dynamic types),比如乙個id型別可以宣告為任何物件的型別。這樣就會出現乙個問題,我們常常不知道某個物件到底是屬於哪個類,或者某個物件是哪個類的子類,這時候怎麼辦呢?objc提供了一系列的方法來共我們呼叫判斷~下表就顯示了objc提供的一些方法:

然後我們可以寫乙個類和main函式來測測看。

//

// fraction.h

// fractiontest

//// created by dirk kim

#import // the fraction class

@inte***ce fraction : nsobject

@property int numerator, denominator;

-(void) print;

-(void) setto: (int) n over: (int) d;

-(double) converttonum;

// add argument to receiver

-(fraction *) add: (fraction *) f;

@end

//

// fraction.m

// fractiontest

//// created by dirk kim

#import "fraction.h"

@implementation fraction

@synthesize numerator, denominator;

-(void) print

-(void) setto: (int) n over: (int) d

-(double) converttonum

-(void) reduce

numerator /= u;

denominator /= u;

}-(fraction *) add: (fraction *) f

@end

#import "fraction.h"

int main (int argc, const char * argv)

return 0;

}

編譯後,執行,得到的結果如下:

obj c程式設計04 類的繼承

以下的 中,我們寫了2個類 父類a和子類b,然後b中對a中的方法做了重寫。import inte ce a nsobject property int i void print end implementation a synthesize i void print end inte ce b a ...

ObjC中的類和例項物件

oc中類的本質是乙個結構體 nsobject類中存在乙個class型別的isa指標。我們在xcode編寫乙個類繼承於nsobject,在terminal使用xcrun sdk iphoneos clang arch arm64 rewrite objc xx.m o xx.cpp將.m檔案轉成.cp...

C 中類的繼承問題03

using system using system.collections.generic using system.text sealed class a 密封類可以例項化,但不能繼承 class c a a是密封類,所以不能繼承,只能例項化 所以此處編譯時是錯誤的 class d public ...