创建许多对象类型/类只是为了使用instanceof

Smo*_*ear 5 java oop instanceof

我想知道我是否正在创建/分解对象类型为无意义的类,以及是否有更好的方法来做到这一点.

假设我有以下类( - > 扩展更高级的类):

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
Run Code Online (Sandbox Code Playgroud)

如您所见,它们大多是默认构造函数.所以我只是创建它们以防我需要使用instanceof条件语句.我的大多数代码最终都在Vehicle类中,因为我试图避免在每个类中重复相同的代码.另外,我应该让汽车抽象,对吗?我从不创建一个Vehicle对象.

这样可以或有更好的方法吗?

Ell*_*sch 4

首先,只要代码能够运行并解决手头的任务,我就会说它足够“正确”(所以是的,没关系。话虽这么说,有些人更喜欢使用接口而不是抽象类(因为您可以实现多个接口,但只能直接从一个祖先扩展)。此外,如果您使用 Java 8+,您可以default向接口添加方法。其他替代方案可能包括拥有一个Vehicle类但VehicleType enum该类有一个字段Vehicle