Objective c 目标C-重写基类方法-如何调用子类';什么方法?

Objective c 目标C-重写基类方法-如何调用子类';什么方法?,objective-c,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_reall

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

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];
}

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


如果在您的情况下没有这样做,那么代码中的某个地方就有一个bug,您需要显示这些方法。

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

我已将子类添加到数组中。记录对象的类会显示loop中的基类。alloc不是子类:)