关键字super:
在Java类中使用super来调用父类中的指定操作:
super可用于访问父类中定义的属性
super可用于调用父类中定义的成员方法
super可用于在子类构造方法中调用父类的构造器
注意:
尤其当子父类出现同名成员(属性、方法)时,可以用super进行区分
super的追溯不仅限于直接父类
super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识
super修饰构造器:通过在子类中使用“super(形参列表)”来显式的调用父类中指定的构造器。
》在构造器内部,“super(形参列表)”必须要声明在首行!
》在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个!
》在构造器内部,当构造器中,不显式的调用“this(形参列表)”或“super(形参列表)”其中任何一个,默认调用的是父类空参的构造器
建议:设计一个类时,尽量要提供一个空参的构造器!
this和super的区别
this:
1访问属性:访问本类中的属性,如果本类没有此属性,则从父类中继续查找
2调用方法:访问本类中的方法
3调用构造器:调用本类构造器,必须放在构造器的首行
4特殊:表示当前对象
super:
1访问属性:访问父类中的属性
2调用方法:直接访问父类中的方法
3调用构造器:调用父类构造器,必须放在子类构造器的首行
4特殊:无此概念