Constructors are not inherited, because we cannot correctly determine how to create objects of a derived class. When all derived classes will use parent constructors implicitly, this will be a problem in my solution, because if we forgot to override the constructor, the object might not be initialized correctly. If you want the constructor of the derived class to do the same thing as the constructor of the parent class, call it with base .
Also remember that the constructor of the base class (without parameters) starts automatically if you do not call any other constructor of the base class, the arguments are explicit. Therefore, calling base() is redundant .
source share