0
A
回答
0
聽起來像你正在尋找實現繼承而不是接口繼承。有關說明,請參閱this thread,如果仍不清楚原因,請在下面註明。
鑑於您只想重用所選屬性的子集,您最好使用組合而不是繼承。
注意
它不能是接口繼承(子類型),因爲,僅「繼承」屬性的子集,一個子類的實例不會是可替代的超類的實例。例如:假設超類暴露了子類未繼承的屬性A
。在運行時,聲明爲超類類型的變量v
被綁定到子類的實例。然後表達式引用v.A
。完全合理的要求 - 但顯然會失敗。換句話說,你打破了界面合同。 Google'Liskov替代原則'獲取更多信息。
0
這是可能的。當超類定義一個屬性時,任何子類都可以重新定義該屬性以使其具有[0..0]多重性。因此,子類只能繼承它需要的東西。 但是,正如@sfinnie提到的,這打破了Liskov Substitution,所以你最好知道你在做什麼!
的UML 2.5規範的草案,我有方便的說:
一個MultiplicityElement可以定義多種無論其邊界是零。這將允許的基數限制爲0;也就是說,它要求這個元素的實例化不包含任何值。 [...]它適用於(但不限於)重新定義更一般的分類器中存在的屬性。
相關問題
- 1. 繼承屬性
- 2. Python類 - 屬性繼承
- 3. 繼承類屬性(python)
- 4. Python類屬性繼承
- 5. 繼承屬性沒有繼承
- 6. Rails - Citier - 兩級繼承,子類不繼承中間類屬性
- 7. 更改繼承屬性的類型(到繼承類型)
- 8. 爲繼承屬性
- 9. 改變繼承類的屬性類型
- 10. 從基類繼承Grails域類屬性
- 11. 繼承css屬性
- 12. 繼承CSS屬性
- 13. 如何使用繼承來繼承多個類的屬性?
- 14. 類,隱藏屬性和繼承
- 15. 如何獲取屬性的繼承類
- 16. 繼承的類不具有屬性?
- 17. C#繼承父類的屬性
- 18. Python類屬性不會繼承
- 19. Python類繼承,缺少屬性
- 20. 在案例分類中繼承屬性
- 21. 繼承和聚合類屬性
- 22. Django的繼承和子類屬性
- 23. getStaticProperties返回繼承的類屬性
- 24. 在添加屬性時繼承python類
- 25. 基類和繼承的靜態屬性
- 26. 是否繼承了vb.net類的屬性?
- 27. 隱藏類/接口的繼承屬性?
- 28. CSS繼承不父類的屬性
- 29. 從接口繼承屬性到類
- 30. PHP:從繼承類改變屬性
提及編程語言和僅繼承選定屬性的目的將會有所幫助。 – bancer 2010-11-14 23:29:09