🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Java `this`和`super`之间的区别 > 原文: [https://howtodoinjava.com/java/basics/this-vs-super/](https://howtodoinjava.com/java/basics/this-vs-super/) `this`和`super`在 Java 中是保留的[关键字](https://howtodoinjava.com/java-keywords/)。 `this`引用一个类的**当前实例**,而`super`引用该类的**父类**,其中使用了`super`关键字。 ## 1\. Java `this`关键字 `this`关键字自动保留对类的当前实例的引用。 在我们要将方法从父类继承到子类,并要专门从子类调用方法的情况下,这非常有用。 我们也可以使用此关键字来访问类中的[静态](https://howtodoinjava.com/java/basics/java-static-keyword/)字段,但是建议的方法是使用类引用来访问静态字段,例如`MyClass.STATIC_FIELD`。 ## 2\. Java `super`关键字 与`this`关键字相似,`super`在 Java 中也是保留关键字。 它始终保存对任何给定类的父类的引用。 使用`super`关键字,我们可以访问任何子类中父类的字段和方法。 ## 3\. Java `this`和`super`关键字示例 在此示例中,我们有两个类`ParentClass`和`ChildClass`,其中`ChildClass`扩展`ParentClass`。 我在父类中创建了一个方法`showMyName()`,并覆盖了它的子类。 现在,当我们尝试使用`this`和`super`关键字在子类中调用`showMyName()`方法时,它将分别从当前类和父类中调用方法。 ```java public class ParentClass { public void showMyName() { System.out.println("In ParentClass"); } } ``` ```java public class ChildClass extends ParentClass { public void showMyName() { System.out.println("In ChildClass"); } public void test() { this.showMyName(); super.showMyName(); } } ``` ```java public class Main { public static void main(String[] args) { ChildClass childObj = new ChildClass(); childObj.test(); } } ``` 程序输出。 ```java In ChildClass In ParentClass ``` 在此 Java 教程中,我们学习了`this`以及`super`关键字。 我们还学习了在 Java 应用程序中使用这两个关键字。 学习愉快!