我能改变班级的超级吗?

时间:2010-07-22 13:08:36

标签: objective-c inheritance subclass superclass

以某种方式可以选择类的超级(最好是在alloc或init方法中),所以我的类继承了其他东西吗?

2 个答案:

答案 0 :(得分:3)

您可以通过创建所需目标类的实例并重置-init,在self中执行此操作。但是,如果您这样做,请务必向前一个实例发送-release消息。

答案 1 :(得分:0)

不,你不能。 :是的,你可以。

类(!)是一个相对静态的东西。它与其超类“硬连线”。这很重要,因为必须有一些东西,知道如​​何处理分配的内存和其他东西。

不同的是一个实例。你通过“询问”它的类来获得一个类的实例。 (并且,通常,在获得一个之后,您要求进行初始化等等。)

此时通常的行为可能会“破裂”。但是,正如我想的那样,这对初学者来说无关紧要,在做这样的事情时你应该有经验! 为什么?阅读这些内容,Apple正在谈论这个问题。并且看,即便是苹果公司也会这样做!看看像NSNumber这样的类集群:Cocoa Fundamentals Guide(不能发布超过这个类,但你肯定在没有我帮助的情况下找到NSNumber文档。)