English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Kann das Schlüsselwort super in statischen Methoden der Java verwendet werden?

静态方法或块属于该类,它们将与该类一起加载到内存中。您可以调用静态方法而无需创建对象。(使用类名作为参考)。

super ,

因此,不能通过静态方法使用“ super ”关键字。

示例

在下面的 Java 程序中,类 ThisExample 包含一个带有 setter 和 getter 方法以及实例方法display()的私有变量名称。从 main 方法(静态方法)中,我们尝试使用 this 关键字调用 display() 方法。

class SuperClass{
   protected String name;
}
public class SubClass extends SuperClass {
   private String name;
   public static void setName(String name) {
      super.name = name;
   }
   public void display() {
      System.out.println("name: ",+super.name);
   }
   public static void main(String args[]) {
      new SubClass().display();
   }
}

编译时错误

SubClass.java:7: error: non-static variable super cannot be referenced from a static context
   super.name = name;
   ^
1 错误