Objective c 多级继承问题

Objective c 多级继承问题,objective-c,inheritance,Objective C,Inheritance,在我的应用程序中,我根据需要使用2-3个级别的继承,所以我想问,在iOS中使用这么多级别的继承是一个好主意,内存是一个很大的限制,这是否会影响性能,内存又如何,因为如果我分配1个对象,它实际上会分配3个对象,包括基本类?假设您有一个如下所示的类层次结构,其中右侧的类是左侧类的子类: NSObject->Subclass1->Subclass2 如果然后实例化子类2 只会创建一个子类2对象。未创建子类1和NSObject的单独对象。由于子类2继承了两个超类中的所有IVAR,因此它将分

在我的应用程序中,我根据需要使用2-3个级别的继承,所以我想问,在iOS中使用这么多级别的继承是一个好主意,内存是一个很大的限制,这是否会影响性能,内存又如何,因为如果我分配1个对象,它实际上会分配3个对象,包括基本类?

假设您有一个如下所示的类层次结构,其中右侧的类是左侧类的子类:

NSObject->Subclass1->Subclass2
如果然后实例化子类2

只会创建一个子类2对象。未创建子类1和NSObject的单独对象。由于子类2继承了两个超类中的所有IVAR,因此它将分配足够的RAM来存储子类1和NSObject中的IVAR

如果您查看CoCoatTouch框架,有许多对象与NSObject之间有几个超类


在考虑RAM使用时,比子类拥有的超类数量更重要的是IVAR的数量和大小以及您创建的单个对象的数量。

只是想澄清一下,你在问,如果实例化A,一个类是否会为B和C分配单独的对象?不,不是。将只创建您分配并初始化对象的C对象。@Nuzhant zari如果abc是继承结构,则在为C分配内存时,u将只调用b的init方法,b将调用a的init方法。我不知道你为什么需要3次分配谢谢@BergQuester,我知道了。我想当我初始化子对象时,父对象也会被初始化。
Subclass2 *instance = [[Subclass2 alloc] init];