我对Objective-C很新。我试图确定是否有一个类的指针,然后为该指针指定一个扩展类,将导致问题。例如,如果ClassB扩展了ClassA,我就这样做了:
ClassA *foo = [[ClassB alloc] init];
这会在某个地方造成问题吗?我知道Xcode似乎没问题,但这并不意味着它没问题。
答案 0 :(得分:4)
是的,那叫做多态,你可以毫无问题地做到这一点。
然而,由于在Objective-C中,消息调度是动态的,如果类B包含重写方法,则将执行此方法。当你知道你将收到一个继承自已知基类的类的对象时,通常会使用它,但是你不知道哪一个。你可以把它变成你的优势。