super使用场景:
1.子类方法中重写父类方法时
2.在子类中定义了和父类同名的成员变量时,父类的成员变量被屏蔽,优先使用子类的成员变量
(super可以使被屏蔽的父类成员可见)
说明:
当子类继承父类非私有属性时,若子类中无同名变量,使用this.属性名可以直接访问父类属性(从父类中去找)。若子类中存在同名变量,使用this.属性名只能访问子类中的同名变量,若要调用父类中的同名变量,需要使用super.属性名。
this和super对比:
1.访问属性
·this关键字:指代当前对象,可以在本类中直接访问属性如果本类中没有要使用的属性,则从父类中找(父类中存在时)
·super:指代父类对象,访问父类属性。
2.访问方法:
this:从本类中访问,如果本类中没有则从父类中找
super:访问父类的方法
3.访问构造方法
**this:**在本类构造方法中调用本类构造方法,放在构造方法首行
**super:**调用父类的构造方法,放在子类构造方法的首行