【发布时间】:2011-10-07 01:04:29
【问题描述】:
如何向某个超类发送消息? 例如:
@interface A: NSObject;
@interface B: A;
@interface C: B;
@implementation C
- (id)init {
[super init];
}
,其中“super”是 A 类,但不是 B
【问题讨论】:
-
您为什么要这样做?它违反了面向对象继承的一个非常基本的方面。
-
为什么不呢?我想覆盖超超类的方法,但所有其他方法 - 从超类。我可以用 C++ 做到这一点。
-
我的类树很大,我想减少一个方法的实现,但不要在超超类中触及该方法的实现。
-
也许你可以在B中定义一个方法绕过B,调用A的方法。当然,如果您要绕过很多课程,这可能会很烦人......
-
是的,它实际上是解决方案,但我无法修改 A 类和 B 类中的代码。我需要在 C 类文件中进行。
标签: objective-c class superclass super