原文: https://howtodoinjava.com/java/basics/this-vs-super/

thissuper在 Java 中是保留的关键字this引用一个类的当前实例,而super引用该类的父类,其中使用了super关键字。

1. Java this关键字

this关键字自动保留对类的当前实例的引用。 在我们要将方法从父类继承到子类,并要专门从子类调用方法的情况下,这非常有用。

我们也可以使用此关键字来访问类中的静态字段,但是建议的方法是使用类引用来访问静态字段,例如MyClass.STATIC_FIELD

2. Java super关键字

this关键字相似,super在 Java 中也是保留关键字。 它始终保存对任何给定类的父类的引用。

使用super关键字,我们可以访问任何子类中父类的字段和方法。

3. Java thissuper关键字示例

在此示例中,我们有两个类ParentClassChildClass,其中ChildClass扩展ParentClass。 我在父类中创建了一个方法showMyName(),并覆盖了它的子类。

现在,当我们尝试使用thissuper关键字在子类中调用showMyName()方法时,它将分别从当前类和父类中调用方法。

  1. public class ParentClass
  2. {
  3. public void showMyName()
  4. {
  5. System.out.println("In ParentClass");
  6. }
  7. }
  1. public class ChildClass extends ParentClass
  2. {
  3. public void showMyName()
  4. {
  5. System.out.println("In ChildClass");
  6. }
  7. public void test()
  8. {
  9. this.showMyName();
  10. super.showMyName();
  11. }
  12. }
  1. public class Main
  2. {
  3. public static void main(String[] args)
  4. {
  5. ChildClass childObj = new ChildClass();
  6. childObj.test();
  7. }
  8. }

程序输出。

  1. In ChildClass
  2. In ParentClass

在此 Java 教程中,我们学习了this以及super关键字。 我们还学习了在 Java 应用程序中使用这两个关键字。

学习愉快!