在我的應用程序中,我按照需求使用了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分配 –