我有兩個類,一個是硬件依賴的,一個不是(我們分別稱它們爲HardwareDependent和HardwareIndependent)。硬件相關類擴展了與硬件無關的類。現在我有另一個類,至少必須是HardwareIndependent的擴展,但是我希望它是HardwareDependent的擴展,因此它可以利用附加功能。有沒有使用反射或其他方法來實現這一點的可能性?或者這是一個完全技術上的不可能性?我想如果一切都失敗了,我可以兩次寫這個班,但在我看來這是一種無效的方法。感謝您提前提供任何幫助。在Java運行時確定基類在運行時
2
A
回答
2
繼承在編譯時是固定的。
這聽起來像你不想讓你的新班級擴展 HardwareIndependent或HardwareDependent;你想要它使用一個對象,可以是。你想要組合而不是繼承。你是第三類(我們稱之爲HardwareComposite)有一個HardwareIndependent的參考。然後,可以使用instanceof運算符在運行時檢查它是否爲HardwareDependent,如果是,則將其轉換爲HardwareDependent並使用提供的附加工具。
如果您的設計迫使您將繼承和構圖的概念混合在一起,那麼您可以查看Facade和Factory模式。
相關問題
- 1. 基類的運行時間確定
- 2. 在運行時重新定義基類
- 3. 在運行時確定(C#)
- 4. 在運行時確定協議類型
- 5. 確保運行時Java超類正確
- 6. 如何在運行時確定對象的基礎類型?
- 7. 在運行時運行Java文件
- 8. 運行時間確定C的類型
- 9. 運行時確定ProvidedMethod返回類型
- 10. 運行時通用類型確定
- 11. java中的運行時類
- 12. 確定運行時間
- 13. 在非通用類在運行時確定泛型類型
- 14. 在運行時更改java類
- 15. 在運行時從wsdl生成JAVA類
- 16. Java:在運行時擴展類
- 17. Java在運行時加載外部類
- 18. java在運行時生成類文件
- 19. 在運行時創建任意Java類
- 20. Ruby:在運行時定位類定義?
- 21. Django FileField with upload_to在運行時確定
- 22. 使用WCF在運行時確定wsHttpBinding
- 23. 目標C - 在運行時確定
- 24. 在運行時確定Spring版本
- 25. 依賴性確定在運行時
- 26. 在運行時確定iPhone設備
- 27. 包含Java類並在運行時運行它們
- 28. 的Java ::在運行時
- 29. 的Java:在運行時
- 30. Java運行時執行 - 確認問題