构造器不能被继承,因此不能被重写Override,但可以被重载Override。
补充:继承——子父类中的构造函数的特点:
在子类构造对象时发现,访问子类构造函数时,父类也运行了。为什么呢?
原因是:在子类的构造函数第一行有一个默认的隐式语句:super();
super();//调用的是父类中的空参数的构造函数。
子类实例化过程:子类中所有的构造函数默认都会访问父类中的空参数的构造函数。
为什么子类实例化的时候要访问父类中的构造函数呢?
因为子类继承父类,获取了父类中的内容(属性),所以在使用父类内容之前,要先看父类是如何对自己的内容进行初始化的。所以子类在构造对象时,必须访问父类中的构造函数。为了完成这个必须的动作,就在子类的构造函数中加入了super()。
如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用父类中的哪个构造函数。
注意:super语句必须要定义在子类构造函数的第一行。因为父类的初始化动作要先完成。
通过super()初始化父类内容时,子类的成员变量并未显示初始化,等super()父类初始化完毕后,才进行子类成员的显示初始化。
构造器Construct是否可被Override?
最新推荐文章于 2020-11-17 18:53:06 发布