关键字thissuper有什么区别?

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

最佳答案

让我们考虑这种情况

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”。

关于java - Java中 “this”和“super”关键字之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4023344/

10-09 06:38