this与super

this

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在调用该变量时,查找顺序是:先找同一作用域的变量,再找上一级作用域的变量,直到找到一个为止

 

posted @ 2021-10-18 22:12  clown-lan  阅读(27)  评论(0)    收藏  举报