我有两个类,一个是硬件依赖的,一个不是(我们分别称它们为HardwareDependent和HardwareIndependent)。硬件相关类扩展了与硬件无关的类。现在我有另一个类,至少必须是HardwareIndependent的扩展,但是我希望它是HardwareDependent的扩展,因此它可以利用附加功能。有没有使用反射或其他方法来实现这一点的可能性?或者这是一个完全技术上的不可能性?我想如果一切都失败了,我可以两次写这个班,但在我看来这是一种无效的方法。感谢您提前提供任何帮助。在Java运行时确定基类在运行时
2
A
回答
2
继承在编译时是固定的。
这听起来像你不想让你的新班级扩展 HardwareIndependent或HardwareDependent;你想要它使用一个对象,可以是。你想要组合而不是继承。你是第三类(我们称之为HardwareComposite)有一个HardwareIndependent的参考。然后,可以使用instanceof运算符在运行时检查它是否为HardwareDependent,如果是,则将其转换为HardwareDependent并使用提供的附加工具。
如果您的设计迫使您将继承和构图的概念混合在一起,那么您可以查看Facade和Factory模式。
相关问题
- 1. 基类的运行时间确定
- 2. 在运行时重新定义基类
- 3. 在运行时确定(C#)
- 4. 确保运行时Java超类正确
- 5. 如何在运行时确定对象的基础类型?
- 6. 在运行时运行Java文件
- 7. 运行时间确定C的类型
- 8. java中的运行时类
- 9. 在非通用类在运行时确定泛型类型
- 10. Java在运行时加载外部类
- 11. 在运行时更改java类
- 12. java在运行时生成类文件
- 13. 在运行时从wsdl生成JAVA类
- 14. Java:在运行时扩展类
- 15. 在运行时创建任意Java类
- 16. Ruby:在运行时定位类定义?
- 17. 使用WCF在运行时确定wsHttpBinding
- 18. 在运行时确定iPhone设备
- 19. Django FileField with upload_to在运行时确定
- 20. 依赖性确定在运行时
- 21. 目标C - 在运行时确定
- 22. 包含Java类并在运行时运行它们
- 23. 的Java:在运行时
- 24. 如何确定Qt在运行时运行的平台?
- 25. 在特定时间运行Java程序
- 26. 在特定时间运行java线程
- 27. Java程序在特定时间运行
- 28. 在运行时覆盖类
- 29. 在运行时基于逻辑java生成一个类
- 30. Python:在运行时绑定子类