Objective C - 重写基类方法 - 如何调用子类的方法?

时间:2011-04-10 19:04:31

标签: objective-c

我有一个在我的代码中广泛使用的基类,但是当我将其子类化时,在以下示例代码中调用基类方法:

SubClass *foo;
[array addObject:foo];

for ( BaseClass *bc in array ) {
  [bc foo];
}

有没有办法在不更改for循环的情况下调用子类的foo方法?我可以做点什么吗

foo {
  if ( what_class_am_i_really != BaseClass ) [what_class_am_i_really foo];
}

2 个答案:

答案 0 :(得分:4)

Objective-C将自动调用子类的实现。

如果在你的情况下没有这样做,你的代码中就会出现一个错误,你需要显示这些方法。

答案 1 :(得分:2)

自动调用子类的方法。这是多态性。将它强制转换为超类不会调用超类方法。