为什么子类的构造方法在运行之前,必须调用父类的构造方法?能不能反过来?为什么不能反过来?

首先我们要从构造函数的方面理解,

所谓构造函数,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载

以上是百度百科的解释,拿自己的话解释其实就是用来对于对象的初始化,一般用于对成员变量赋初值。同时也具有重载方法。

这样一来,就很好理解了。子类继承了父类所有的对象和成员变量,既然如此肯定要先初始化,才能正确使用父类的对象和成员变量。同样的,反过来说,父类并不知道会有什么子类,也不知道子类有什么特殊的对象和成员变量,自然也就无法提前初始化了。

猜你喜欢

转载自www.cnblogs.com/wushenjiang/p/11749852.html