1. ホーム
  2. objective-c

[解決済み] Objective-Cの多重継承

2023-04-01 15:46:30

質問

2つのクラスがあり、1つはメソッドAを含み、もう1つはメソッドBを含んでいます。したがって、新しいクラスで私はメソッドmethodAとmethodBをオーバーライドする必要があります。だから私はどのように客観的なCで多重継承を達成するのですか?私は構文で少し混乱しています。

どのように解決するのですか?

Objective-Cは多重継承をサポートしていませんし、その必要もありません。 コンポジションを使用します。

@interface ClassA : NSObject {
}

-(void)methodA;

@end

@interface ClassB : NSObject {
}

-(void)methodB;

@end

@interface MyClass : NSObject {
  ClassA *a;
  ClassB *b;
}

-(id)initWithA:(ClassA *)anA b:(ClassB *)aB;

-(void)methodA;
-(void)methodB;

@end

あとは、関連するivarでメソッドを呼び出すだけです。 コードは増えますが、objective-Cの言語機能として多重継承がないだけです。