【发布时间】:2012-07-08 14:05:26
【问题描述】:
对于是否可以在 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)不是。
【问题讨论】:
标签: objective-c