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

Java의 정적 메서드에서 'super' 키워드를 사용할 수 있습니까?

정적 메서드 또는 블록은 해당 클래스에 속하며, 클래스와 함께 메모리에 로드됩니다. 객체를 생성하지 않고 정적 메서드를 호출할 수 있습니다. (클래스 이름을 사용하여 참조).

Java에서의 “ 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 에러
추천 합니다