gpt4 book ai didi

java - Java运行时基类的Runtime determination

转载 作者:行者123 更新时间:2023-11-30 09:47:23 25 4
gpt4 key购买 nike

我有两个类,一个依赖于硬件,一个不依赖于硬件(我们分别称它们为 HardwareDependent 和 HardwareIndependent)。硬件相关类扩展了硬件独立类。现在我有另一个类,它至少必须是 HardwareIndependent 的扩展,但我希望它尽可能成为 HardwareDependent 的扩展,以便它可以利用附加功能。是否有可能使用反射或其他方式来实现这一目标?还是这在技术上完全不可能?我想如果一切都失败了,我可以写两次这个类,但在我看来这是一种无效的方法。提前感谢您的帮助。

最佳答案

继承是在编译时固定的。

听起来您不希望新类扩展 HardwareIndependent 或 HardwareDependent;您希望它使用 一个可以是其中之一的对象。你想要组合而不是继承。你是第三类(我们称之为 HardwareComposite)有一个 HardwareIndependent 的引用。然后,您可以在运行时使用 instanceof 运算符检查它是否是 HardwareDependent,如果是,则将其转换为 HardwareDependent 并使用提供的附加功能。

如果您的设计迫使您混合使用继承和组合的概念,您可能会研究 Facade 和 Factory 模式。

关于java - Java运行时基类的Runtime determination,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6710082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com