一、super()在构造方法中的作用
1、 super()在构造方法中使用可以使该类的构造方法调用其父类的构造方法:
2、super中可以添加参数,可以根据super中的类型调用父类中与该参数类型相同的构造方法:
3、易出错的地方就是:在子类中调用了父类中不存在的构造方法:
此时因为父类中的无参构造方法已经不存在了,此时使用super()会出现错误,因为父类中已经不存在无参构造方法
二、super()在构造方法中的使用技巧
1、构造方法中的默认属性
在构造方法中默认含有一个super(),所以可以不写;
如图所示,即使子类中为并未声明super,但父类中的构造方法依旧被调用了;
2、super首行有效代码性
super只能出现在有效代码的首行,不可以写在代码后面,这一点与this在同类中引用相同;所以,当一个构造方法中引用了另一个构造方法时原来的构造方法中默认的super是不存在的;通过this调用的构造方法方法中也含有一个super,此时由于最后被调用的构造方法中必含有super,于是父类的构造方法也被调用了,如图:
三、通过super()总结父类对子类构造方法的影响
当子类创建对象时,父类的构造方法一定被使用:
无论是子类中的构造方法是否含有this,在创建对象时其子类中最后一个被执行的构造方法一定含有super,这使得父类中的构造方法也被调用;