是否有可能處理具有不同實例變量類型的類?比方說,我有一個具有兩個int實例變量的一類,我們姑且稱之爲:類的多個實例變量類型?
@interface ClassA: NSObject {
int x;
int y;
}
@end
同時我想擴展它給它的可能性來處理這樣的實例變量,不同類型,像這樣:
@interface ClassB: ClassA {
double x;
double y;
}
這甚至有可能嗎?
是否有可能處理具有不同實例變量類型的類?比方說,我有一個具有兩個int實例變量的一類,我們姑且稱之爲:類的多個實例變量類型?
@interface ClassA: NSObject {
int x;
int y;
}
@end
同時我想擴展它給它的可能性來處理這樣的實例變量,不同類型,像這樣:
@interface ClassB: ClassA {
double x;
double y;
}
這甚至有可能嗎?
我敢肯定你不能這樣做,有兩個原因:
int x, double x
)。如果您不想爲這些用例創建單獨的類,那麼抽象超類可能會起作用。如果我更多地瞭解你想要解決的問題,我可以在這方面多一點幫助。
看起來你真的想要的是參數多態,Objective-C不支持。某些Cocoa類,如NSNumber
系列,使用具有許多具體子類的抽象超類,可能具有不同的實例變量佈局(就像你在問題中描述的那樣)。然後,在抽象和具體之間適當地劃分邏輯。這是Cocoa的類集羣設計模式,這是對C++和Haskell等語言的參數多態性的一種弱化的臨時答案。
不會。您會收到「重複成員x」和「重複成員y」的編譯時警告。
你試過了嗎? – 2010-12-03 05:17:21
你爲什麼不給一個id數據類型給x和y? – 2010-12-03 05:19:02