子父类中的构造函数的特点
1. 在子类构造对象时,发现访问子类构造函数时,父类也运行了。
为什么?
原因是:在子类的构造函数中第一行又一个默认的隐式语句,super();
2. 子类的实例化过程:
子类中所有的构造函数默认都会访问父类中的空参数的构造函数。若想访问父类中的有参构造函数,可以指定super(参数)这种形式来调用父类中的有参构造函数
3. 什么子类实例化的时候要访问父类中的构造函数呢?
那是因为子类继承了父类,获取到了父类中的内容(属性),所以在使用父类内容之前要先看父类是如何对自己的内容进行初始化的。
所以子类在构造对象时,必须访问父类中的构造函数。为了完成这个必须的动作,就在子类的构造函数中加入了super()语句。
如果父类中没有定义空参数构造函数,那么子类的构造函数必须用super明确要调用父类中的那个构造函数。
4. 注意:
1)super()语句必须要定义在子类构造函数的第一行,因为父类的初始化动作先完成;
2)子类构造函数总如果使用了this调用了本类构造函数时,那么super就没有了,因为super和this都只能放在第一行,所以只能有一个。
转载请注明原文地址: https://ju.6miu.com/read-5439.html