我有几个派生自一个超类的子类。让我们称这个超类为“classA”。
classA的所有子类都有一个名为 doStuff:(id)sender 的方法,每个类中的每个方法都会执行与该类相关的操作。
问题是我必须从classA调用doStuff。
我该怎么做?
我应该在classA上声明 doStuff:(id)sender 作为空方法,例如
- (void) doStuff:(id)sender {
}
只是让它正确编译然后覆盖子类再次声明它?这是正确的方法吗?
感谢。
答案 0 :(得分:3)
对于这种情况,这是一种很好的方法,只需让超类实现一个什么都不做的默认方法。或者它也可以抛出一个异常,所以你不要忘记提供一个实现,但通常它足以在子类中记录子类需要提供一个实现。