super:父类的,从父类中开始查找的。
(1)super.成员变量
当子类具有与父类同名的成员变量时,可以通过super.成员变量进行区分,表示访问父类的成员变量。
(2)super.成员方法
当子类“重写”了父类的某个方法,在子类中又想要调用父类被重写的方法时,就可以使用super.成员方法。
(3)super()或super(实参列表)
在子类构造器的首行。
super():表示调用父类的无参构造。
super(实参列表):表示调用父类的有参构造。
小结:this.和super.:
如果用的是this.,那么从子类先开始找,如果没有,再会往上追溯,从父类中查找。即this.访问的成员,可能是本类声明的,也可以是本类从父类继承的。
如果用的是super.,那么从直接父类开始找,如果直接父类没有,再往上追溯,从间接父类找。即super.访问的成员,一定是父类的,可定不是子类自己的。
如果既没有写this.,又没有写super.,如果访问的是变量,那么看是否有局部变量,如果有局部变量,先考虑局部变量;如果访问的是方法,那么从这代码的当前类开始找。如果子类有重写的方法,要执行重写的。