首先我们要从构造函数的方面理解,
所谓构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
以上是百度百科的解释,拿自己的话解释其实就是用来对于对象的初始化,一般用于对成员变量赋初值。同时也具有重载方法。
这样一来,就很好理解了。子类继承了父类所有的对象和成员变量,既然如此肯定要先初始化,才能正确使用父类的对象和成员变量。同样的,反过来说,父类并不知道会有什么子类,也不知道子类有什么特殊的对象和成员变量,自然也就无法提前初始化了。