在我的应用程序中,我按照需求使用了2-3级继承,所以我想问一下,在iOS中使用如此多的继承级别是一个好主意,其中内存是一个很大的限制,影响性能和内存,因为如果我分配1个对象实际上它会分配3个对象,包括基地?多级继承问题
Q
多级继承问题
1
A
回答
0
假设你有一个类层次结构如下,其中类权是那些到左的子类:
NSObject->Subclass1->Subclass2
如果然后实例Subclass2
Subclass2 *instance = [[Subclass2 alloc] init];
只有一个Subclass2
对象将被创建。未创建单独的对象Subclass1
和NSObject
。因为Subclass2
继承了两个超类的所有ivars,所以它将有足够的RAM分配来存储来自Subclas1和NSObject的ivars。
如果你看看CocoaTouch框架,有许多对象在它们和NSObject之间有几个超类。
当考虑RAM的使用情况时,子类的超类数量比ivars的数量和大小更重要,以及创建的单个对象的数量。
+0
谢谢@BergQuester,我明白了。我认为当初始化子对象时,父对象也会启动。 –
相关问题
- 1. 多级继承问题
- 2. Jinja2的多级模板继承问题
- 3. 多继承问题
- 4. 多级继承
- 5. 问题与多重继承
- 6. C++多继承问题
- 7. Rails多表继承问题
- 8. 多继承问题C++
- 9. Codeigniter多级继承
- 10. OOJS多级继承
- 11. php4多级继承
- 12. 多级继承和多态
- 13. 问题与Hibernate映射2级继承
- 14. ng-repeat范围问题:两级继承?
- 15. 继承问题
- 16. 继承问题
- 17. 继承问题
- 18. 继承问题
- 19. 问题继承
- 20. 继承问题
- 21. 问题继承
- 22. 继承问题
- 23. 多级继承:从子类
- 24. 多级继承映射2
- 25. Qt中的多级继承
- 26. JPA中的多级继承
- 27. 多级继承构造
- 28. 多级继承和dynamic_cast
- 29. PHP中的多级继承
- 30. Java多级通用继承
只是想澄清,你是问如果一个类的子类'A'子类'B'子类'C'如果实例化'A'会为'B'和'C'分配单独的对象吗? – BergQuester
不是,它不是。只有'C(你分配和初始化的对象)'对象将被创建。 –
@Nuzhant zari如果a(b(c))是继承结构意味着为c分配内存,u只会调用b的init方法,b将调用init方法。我不知道为什么你需要3分配 –