Objective-C でメソッドを「オーバーロード」できるかどうかについては、議論/意見の相違があるようです。Objective-C でメソッドのオーバーロードを定義することは (メソッド シグネチャの構文が異なるため) C++ の用語と同じであることは別として、特に質問します。
1) これらのメソッドの両方を宣言/実装するクラス:
- (void) doSomethingWithObject:(ClassA*) object;
- (void) doSomethingWithObject:(ClassB*) object;
2) これらのメソッドの両方を宣言/実装するクラス:
- (void) doSomethingWithObject:(ClassA*) object;
- (BOOL) doSomethingWithObject:(ClassA*) object;
3) このメソッドを宣言/実装するクラス:
- (void) doSomethingWithObject:(ClassB*) object;
...そのスーパークラスがこのメソッドを宣言/実装する場合:
- (void) doSomethingWithObject:(ClassA*) object;
(および競合する戻り値の類似物)、A)ClassB
が から派生した場合ClassA
、および B) ない場合の両方。