If we cannot instantiate an abstract class, why does it have a constructor. We are obviously never going to create an object of an abstract class, but only of its sub classes. Correct? Then what is the purpose of having it there at all? Is it just to accommodate the Java language statute that since first statement in any constructor is a call to super() , it has to be there? Or is there something more to it?
Constructors don't create objects. They put a newly created object into a valid initial state. Since abstract classes can have state (member variables), they need constructors to initialize that state.
How would we initialize the common base class state "name" without the constructor?