super
super:表示超类或父类,只能在子类中使用,可以访问父类中的实例变量、实例方法、还可以访问父类的构造方法
- 当子类与父类中有同名的属性时,可以通过"super.此属性"显示的调用父类中声明的属性。若想调用子类的同名的属性"this.属性"
- 如果访问实例变量时,默认前面添加this. ,但是当使用this.访问实例变量时,先在当前类中找该属性,如果没有找到该属性则再去父类中找,如果在子类中访问父类中的实例变量,则可以直接使用super关键字
- 当子类重写父类方法以后,在子类中若想再显示的调用父类被重写的方法,就需要使用super.方法
- super修饰构造器:通过子类中使用“super(形参列表)”来显示的调用父类中指定的构造器
- 在构造器内部,“super(形参列表)”必须声明在首行
- 在构造器内部,“this(形参列表)”或“super(形参列表)”只能出现一个
- 当实例化子类时父类做了什么?
先执行父类的构造方法,然后在执行子类的相匹配构造方法- 如果子类构造方法中没有指明则默认调用父类无参构造方法
- 如果子类构造方法中指明调用父类那个构造方法,则先执行父类相匹配的构造方法,然后在执行子类相匹配的构造方法
- 建议:设计一个类时,尽量要提供一个空参的构造器