一尘不染

Java中“ this”和“ super”关键字之间的区别

java

关键字this和之间有什么区别super

两者都用来访问类的构造函数吧?你们任何人都可以解释吗?


阅读 175

收藏
2020-09-08

共1个答案

一尘不染

让我们考虑这种情况

class Animal {
  void eat() {
    System.out.println("animal : eat");
  }
}

class Dog extends Animal {
  void eat() {
    System.out.println("dog : eat");
  }
  void anotherEat() {
    super.eat();
  }
}

public class Test {
  public static void main(String[] args) {
    Animal a = new Animal();
    a.eat();
    Dog d = new Dog();
    d.eat();
    d.anotherEat();
  }
}

输出将是

animal : eat
dog : eat
animal : eat

第三行正在打印“ animal:eat”,因为我们正在调用super.eat()。如果我们调用this.eat(),它将被打印为“
dog:eat”。

2020-09-08