A subclass inherits accessible date fields and methods from its superclass. Does it inherit constructors?
Can the supperclass's constructors be invoked from a subclass?
1.Calling Superclass Constructors
构造函数被用来构造类的一个实例.不像属性和方法,超类的构造函数不会被子类继承.
他们可以be invoked from 子类的构造函数 using the keyword super.
super(),or super(parameters);
super()语句Invoke超类的无参构造函数,super(arguments) invoke 匹配参数表的超类构造函数.
super()或者super(arguments)必须在子类构造函数的第一句.
这是唯一地显式invoke超类构造函数地方法.
一个构造函数必须invoke重载的构造函数或者他的父类的构造函数. 如果两者都没有显式地invoke,编译器自动将super()发那个如构造函数的第一行. ![](https://images2018.cnblogs.com/blog/1359064/201805/1359064-20180511144108250-27685042.png) 在任何情况下,构建一个类的实例invoke inheritance链的所有超类的构造函数. 当构建一个子类的对象时,子类构造函数首先invoke他的超类的构造函数before performing its own tasks. 如果超类由其他类派生,超类的构造函数也会invoke它的亲类的构造函数before performing its own tasks. 这种处理方法持续到继承阶梯(inheritance hierarchy)最后一个构造函数被called为止. 这叫做constructor chaining. ![](https://images2018.cnblogs.com/blog/1359064/201805/1359064-20180511145145866-396089149.png) ![](https://images2018.cnblogs.com/blog/1359064/201805/1359064-20180511145155096-774071811.png) ![](https://images2018.cnblogs.com/blog/1359064/201805/1359064-20180511145223319-956742482.png) ![](https://images2018.cnblogs.com/blog/1359064/201805/1359064-20180511145348079-1460219207.png)