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

Pode-se usar a palavra-chave super em métodos estáticos de Java?

Texto

métodos estáticos ou blocos pertencem à classe e serão carregados na memória com a classe. Você pode chamar métodos estáticos sem criar um objeto (usando o nome da classe como referência). Portanto, não podemos usar a palavra-chave " onde, no Java, o "

" como referência para um objeto da superclasse a partir de um método estático. Isso significa que para usar o método "super", deve ser chamado por um objeto que invoca o método, e não por um método estático. Portanto, não podemos usar a palavra-chave " palavra-chave. super

Exemplo

No seguinte programa Java, a classe ThisExample contém uma classe com métodos setter e getter e um método de instânciadisplay()variável privadaNomeDe dentro do método main (método estático), tentamos usar a palavra-chave this para chamar o método 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();
   }
}

erro de compilação

SubClass.java:7: error: non-variável estática super não pode ser referenciada a partir de um contexto estático
   super.name = name;
   ^
1 error