I understand:
- Since an abstract class is nothing on its own, e.g. vehicle, we want to create an object of an concrete implementation, like Car, Bike, etc.
- The constructor of an abstract class gets called during object chaining.
- We can never directly create an object of an abstract class, even if it contains a constructor and all methods are implemented.
But from the compiler's perspective, why does Java enforce these rules?