我有一些课SimpleButton
。这是Button
班的孩子。 Button
类有一些方法,在SimpleButton
中被覆盖了。现在,如果我想从simpleButton
访问此方法,我只需要致电[super someMethod];
但是如何从simpleButton
之外访问它?我试过了
SimpleButton *button;
[(Button*)button.superclass someMethod];
但这不起作用......
答案 0 :(得分:2)
你不能这样做。如果您已在子类中重写了一个方法,那么您已将该类的公共方法更改为实现中的方法。你必须有一个单独的方法,它只调用超级实现:
假设您已覆盖方法foo
。创建一个新方法superFoo
[button superFoo];
内部是这样做的:
-(void)superFoo
{
[super foo];
}
但是,如果您需要执行此类操作,那么您可能需要重新考虑为什么首先覆盖该方法。也许你应该在你的子类上有一个新的方法,它执行独特的部分并调用超级实现本身,而不是覆盖。