[`Objective-C`]でポリモーフィズム(多態性)

Objective-Cでポリモーフィズムなコードのメモ

スーパークラス

#import <Foundation/Foundation.h>

@interface Super : NSObject
- (void) method;
@end
#import "Super.h"

@implementation Super
- (void)method {
  puts("This is Super Class");
}
@end

サブクラス

#import "Super.h"

@interface Sub : Super
@end
#import "Sub.h"

@implementation Sub
- (void)method {
  puts("This is Sub Class");
}
@end

実行

Super *instance = nil;

instance = [[Super alloc] init];
[instance method];

instance = [[Sub alloc] init];
[instance method];

結果

結果

This is Super Class
This is Sub Class

まぁこんだけ。サブクラスでオーバーライドする場合に、何らかの宣言をする必要はない。

名前修飾 - Wikipediaを読むとObjective-Cにおける多態性の仕組みが書いてある。

Share
関連記事