A concrete class is a non-abstract subclass that implements every abstract method inherited from its superclass. It can be instantiated, unlike the abstract superclass. section 4.3.4
A concrete subclass typically:
- Implements required abstract methods such as start_engine() and stop_engine(). section 4.3.4
- Inherits usable non-abstract methods and may override selected behavior. section 4.3.4
Motor vehicles
MotorVehicle declares start_engine() and stop_engine() abstract. Car implements both and inherits drive(), while Truck implements both and overrides turn_left() and turn_right(). Creating MotorVehicle directly is invalid; creating Car or Truck is valid.
