如果ClassB
是ClassA
的子類,如果ClassB's
ivars之一是來自ClassA
的實例,它會好嗎?對不起,如果這是一個愚蠢的問題。我只是覺得它如何從ClassA
繼承ClassB
,但它可以擁有它的一個實例。一個類的伊娃可以作爲它的超類的一個實例嗎?
回答
是的,那很好。基本上,您可以在任何課程中使用任何類型的ivars。
在某些語言中,如果您嘗試使A的*子類成爲A的成員,它可能會變得有點棘手。關於Objective-C的無關 - 無需嘗試。 – 2012-08-16 21:08:35
@HotLicks是的,但我們不是說其他語言,只有Obj-C。如果你使用'@ SomeSubclass'正向聲明子類,那麼它必須是完全有效的(儘管如此,仍然不是很好的做法)。 – 2012-08-16 21:18:56
是的,我期望它能夠在Obj-C中工作,因爲它是duck-typed,並且不會嘗試維護類繼承映射。從未嘗試過。 (即使它不能正常工作,你也可以用超類指針來僞造它 - 幾乎任何語言都是如此。) – 2012-08-16 21:36:41
這完全沒問題。一個班級甚至可以擁有自己的類型的ivar。
比方說,你有一個班級的旅行車,並想模擬一列火車。你的旅行車班可能會有2輛旅行車。一個指向列車中的下一個貨車,另一個指向前一個貨車。
然後,您可以實現Wagon的PassengerWagon子類,它會從它的超類繼承Wagon ivars。要清楚:如果您只想跟蹤PassengerWagon實例的鄰居,但您可以僅在PassengerWagon中定義ivars(類型Wagon),而不是超類,但這些鄰居可以是任何Wagon類型。
- 1. 我可以在同一類的實例方法中釋放伊娃嗎? (Objective-C)
- 2. 一個類的實例可以用JavaScript代替它自己嗎?
- 3. 有沒有創建它的實例有一個類可以嗎?
- 4. 一個子類可以被稱爲它的超類的類型嗎?
- 5. 有子類中的伊娃「代理」,其超也有同樣名爲伊娃
- 6. NSObject可以作爲一個類的兩個實例的委託嗎?
- 7. 從一個C函數訪問一個類伊娃
- 8. Python:一個類實例可以評估爲任何類型嗎?
- 9. 類變量可以是類的一個實例嗎?
- 10. 我可以在JavaScript中動態地將一個類的實例轉換爲另一個類的實例嗎?
- 11. 我可以動態地將一個類的實例轉換爲另一個類的實例嗎?
- 12. 我應該將一個單身人士作爲一個伊娃嗎?
- 13. 我可以指定一個類實例可以轉換爲某種類型嗎?
- 14. 如何編組一個JAXB類實例作爲其超類
- 15. 類可以實例化另一個類嗎? (PHP)
- 16. 一個類的成員可以和它的類型(另一個類)命名爲同一個名字嗎?
- 17. 我可以創建一個內部靜態類的實例嗎?
- 18. 模板類可以指向另一個的實例嗎?
- 19. 一個類可以返回它自己的靜態實例嗎? (在C#)
- 20. 如何讓一個類的實例成爲Jena中另一個類的實例?
- 21. 函數可以返回一個未知類型的泛型類的實例嗎?
- 22. 實例化一個泛型類型的對象與同一類型作爲它的超
- 23. 我可以將一個類的實例作爲另一個屬性的對象嗎
- 24. python類可以返回它的類的新實例嗎?
- 25. 類可以從它的父類繼承一個接口嗎?
- 26. 可以實例化一個子類對象從超
- 27. Python - 類的實例作爲另一個類方法的參數
- 28. 我可以在實例化一個匿名類時實現一個接口嗎?
- 29. 斯卡拉。一個字段的案例類可以是一個值類嗎?
- 30. 實例另一個類實例的參數中的一類
考慮到每個對象都有NSObject作爲超類。 – 2012-08-16 21:06:28