我想知道我是否正在创建/将对象类型分解为无意义的类,是否有更好的方法来做到这一点。
假设我有以下类(class)(--> 扩展 更高的类(class)):
Vehicle class - takes care of movement and a default speed
-->Car class - adds passengers
-->-->ElectricCar class - a default constructor
-->-->GasolineCar class - a default constructor
-->-->HybridCar class - a default constructor
-->Motorcycle class - a default constructor
-->Bike class - a default constructor, overrides speed
-->Segway class - a default constructor, overrides speed
如您所见,它们大多是默认构造函数。因此,我只是在需要使用 instanceof 条件语句时才创建它们。我的大部分代码都在 Vehicle 类中结束,因为我试图避免在每个类中重复相同的代码。另外,我应该使 Vehicle abstract,对吗?我从不创建 Vehicle 对象。
这样可以吗,还是有更好的方法?
最佳答案
首先,只要代码能正常运行并解决手头的任务,我就会说它足够“正确”(所以是的,没问题)。也就是说,有些人更喜欢使用接口(interface)而不是抽象类(因为您可以实现多个接口(interface),但只能直接从一个祖先扩展)。此外,如果您使用的是 Java 8+,则可以向接口(interface)添加 default
方法。其他替代方案可能包括拥有一个 Vehicle
类,但为 Vehicle
类提供一个 VehicleType
enum
字段。
关于java - 创建许多对象类型/类只是为了使用 instanceof,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29195462/