I'm wondering if I'm creating/breaking down object types into meaningless classes and if there is a better way to do it.

Say I've got the following classes (--> **extends** the higher 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

```

As you can see, they're mostly default constructors. So I'm only creating them in case I ever need to use an **instanceof** conditional statement. Most of my code ends up in the Vehicle class because I'm trying to avoid repeating the same code in every class. Also, I should make Vehicle **abstract**, correct? I never create a Vehicle object.

Is this OK or is there a better way to do it?