this与super
this 表示当前对象
super
1.子类重写父类的方法
public class B extends A{
private String nameB="B";
@Override
public void getName() {
System.out.println("子类"+nameB);
super.getName();
}
public static void main(String[] args) {
B b=new B();
b.getName();
}
}
在子类B中,我们重写了父类的getName方法,如果在重写的getName方法中我们去调用了父类的相同方法,必须要通过super关键字显示的指明出来。如果不明确出来,按照子类优先的原则,相当于还是再调用重写的getName()方法,此时就形成了死循环。
2.子类重写父类的变量
public class A {
String nameA="A";
}
public class B extends A{
String nameA="B";
public void getName() {
System.out.println("子类"+nameA);
System.out.println("父类"+super.nameA);
}
public static void main(String[] args) {
B b=new B();
b.getName();
}
}
为了获得父类的这个字段我们就必须加上super
3.在子类的构造方法中
???
局部变量与成员变量重名
JVM在调用该变量时,查找顺序是:先找同一作用域的变量,再找上一级作用域的变量,直到找到一个为止

浙公网安备 33010602011771号