super代表父类的引用,用于访问父类的属性、方法和构造器。
1、访问父类的属性,但不能访问父类的private属性
super.属性名;
2、访问父类的方法,但不能访问父类的private方法
super.方法名(参数列表);
3、访问父类的构造器
super(参数列表);只能放在构造器的第一句,只能出现一句。只能放在构造器里。不能出现在普通的方法里。有的时候需要两个构造器,一个有参数,一个无参数。
4、当子类中有和父类中的成员(方法和属性)重名时,为了访问父类的成员,必须通过super。如果没有重名,使用super。
call.()是从子类开始向上查找。
this.call () 和 call()是一样的都是从子类开始想上查找。
super.call()的步骤:是直接查找父类,若父类没有那么接着向上查找。
若是要查找的是private,那么就会报错。若没有找到,那么就会说该方法不存在。
5、super的访问不限于直接父类,如果爷爷类和本类中有同名的成员,也可以使用super去访问爷爷类的成员,如果多个基类(上级类)中都有同名的成员,使用super类遵循就近原则。
若需要找的方法是private的话,他也会一直找到最顶级的类。
这里的例子很重要!!!
调用构造器:直接super(""), super("");