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

È possibile utilizzare la chiave super nei metodi statici di Java?

Corpo del testo

dove il metodo statico o il blocco appartengono alla classe e verranno caricati nella memoria insieme alla classe. Puoi chiamare un metodo statico senza creare un oggetto (utilizzando il nome della classe come riferimento). super " come riferimento all'oggetto della superclasse. Questo significa che per utilizzare il metodo "super", deve essere chiamato da un oggetto che chiama il metodo, mentre il metodo statico non è così.

Pertanto, non possiamo utilizzare il " super parola chiave.

Esempio

Nel seguente programma Java, la classe ThisExample contiene una classe con metodi setter e getter e un metodo di istanzadisplay()variabile privataNomeDall'metodo main (metodo statico), proviamo a chiamare il metodo display utilizzando il chiave this.

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();
   }
}

Errore durante la compilazione

SubClass.java:7: errore: variabile non statica super non può essere richiamata da un contesto statico
   super.name = name;
   ^
1 errore