Objective-C は
C というより Ruby の方が近いかもしれない。
C 〜 C++ 〜 java という型に厳密な世界に生きてくると、
@interface Hoge : NSObject {
}-(id)normalMethod:(NSObject*)arg1;
@end@interface HogeHoge : NSObject {
}-(id)normalMethod:(NSObject*)arg1;
-(id)abnormalMethod:(NSObject*)arg1;
@end
のようなクラスについてこのままで多態のように、Hoge と HogeHoge の normalMethod が扱えてしまう*1し、カテゴリ使って NSString に normalMethod とか作っておくと、それさえもフリーダムに呼べるw 当然、
int main() {
id hogehoge = [Hoge new]; // java 的には Object hoge = new Hoge(); しているようなもの
[hogehoge normalMethod]; // だから、Object.normalMethod(); 無いじゃない?
}
とやってコンパイル通ってしかも動く。すごく C ファミリーっぽくないw
真面目に
してくれていればそうでもないんですけどw