我有一个关于技术和实现的问题,而不是要解决的实际问题。最近我创建了一个抽象类,我们称之为A,它定义了它的子类的共同行为。
我用它来构造几个子类 B、C 和 D,然后将它们传递给超类-子类结构之外的其他方法,该结构采用类型 A(因此能够处理所有 B、C 和 D)。
在 Java 中,我使用 instanceof 来检索真实类型,但最终我不得不对真实类型进行大量转换,而且看起来很乱。有人对如何使代码更干净有任何建议吗?
我尝试的一种方法是从超类的参数中重构子类类型的实例,这样我就可以使用它的实际类型来处理对象,从而避免类型转换。由于这些子类中的每一个都是单例(是的,它们保持状态),所以我觉得这样做没问题。这似乎是一件糟糕的事情吗?
感谢任何回答的人,非常感谢!
编辑:我用斜体添加了进一步的说明。谢谢。