package com.use.myextends.mysuper;
/* super 关键字
1、super代表父类的引用,用于访问父类的属性,方法,构造器
2、基本语法
1) 访问父类属性: super.属性名
2) 访问父类方法: super.方法名(参数列表)
注意不能访问私有方法,不同包下,不能访问默认级别
3) 访问构造器: super(参数列表) - 只能放在第一句、只能出现一句
3、super.x 不查找本类,从父类开始,逐级向上查找
4、super 的访问不限于直接父类,如果多个上级类中都有同名的成员,使用super访问就近原则
A->B->C
*/
public class MySuper {
public static void main(String[] args) {
B b = new B();
b.calB();
}
}
package com.use.myextends.mysuper;
public class A {
public void cal(){
System.out.println("A类中的cal()...");
}
}
package com.use.myextends.mysuper;
public class B extends A{
public void cal(){
System.out.println("B类中的cal()...");
}
public void calB(){
// cal() 等价于 this.cal() 先查找本类,逐级向上查找
cal();
this.cal();
// super.cal() 不查找本类,直接从父类开始向上查找
super.cal();
}
}