0

我对 Objective-C 很陌生。我试图确定是否有一个类的指针,然后将扩展类分配给该指针,会导致问题。例如,如果 ClassB 扩展 ClassA,我这样做:

ClassA *foo = [[ClassB alloc] init];

这会在某个地方引起问题吗?我知道 Xcode 似乎没问题,但这并不意味着没问题。

4

1 回答 1

4

是的,这就是所谓的多态性,你可以毫无问题地做到这一点。

然而,由于在 Objective-C 中消息分发是动态的,如果类 B 包含一个被覆盖的方法,这个方法将被执行。当您知道您将收到一个从已知基类继承的类的对象但您不知道是哪一个时,通常会使用这种方法。你可以把它变成你的优势。

于 2013-01-14T22:04:26.920 回答