如果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. 一個類的實例可以用JavaScript代替它自己嗎?
- 2. 一個子類可以被稱爲它的超類的類型嗎?
- 3. NSObject可以作爲一個類的兩個實例的委託嗎?
- 4. 我可以在JavaScript中動態地將一個類的實例轉換爲另一個類的實例嗎?
- 5. 我可以指定一個類實例可以轉換爲某種類型嗎?
- 6. 如何編組一個JAXB類實例作爲其超類
- 7. 類可以實例化另一個類嗎? (PHP)
- 8. 模板類可以指向另一個的實例嗎?
- 9. 一個類可以返回它自己的靜態實例嗎? (在C#)
- 10. 實例化一個泛型類型的對象與同一類型作爲它的超
- 11. 我可以將一個類的實例作爲另一個屬性的對象嗎
- 12. Python - 類的實例作爲另一個類方法的參數
- 13. 可以實例化一個子類對象從超
- 14. 我可以在實例化一個匿名類時實現一個接口嗎?
- 15. 讓一個類成爲另一個類的實例
- 16. 爲什麼可以調用一個類的實例?
- 17. C++一個類可以包含一個類的成員,它是朋友嗎?
- 18. 實例化一個類作爲可迭代的
- 19. 是一個被認爲是實現的超類的接口嗎?
- 20. 一個類實例
- 21. 創建類實例作爲另一個類的成員
- 22. Haskell數據字段作爲類型類的一個實例
- 23. Java:我可以爲同一個變量獲取不同的類實例嗎?
- 24. 一個接口類可以由多個類實現嗎?
- 25. 我可以創建一個可以作爲每種類型活動的父類的單個類嗎?
- 26. 試圖NSLog NSNumber伊娃實例方法
- 27. 我可以將一個類作爲對象類型嗎?
- 28. 如何將一個子類的實例傳遞給超類
- 29. 一般::伊娃:...不是一個有效的變量
- 30. 一個類可以是一個實例是否正確?
考慮到每個對象都有NSObject作爲超類。 – 2012-08-16 21:06:28