Siamo in grado di accedere ai membri della superclasse con Super()
Se il metodo sovrascrive uno dei metodi della sua superclasse, puoi invocare il metodo sovrascritto attraverso l'uso della parola chiave super
. Puoi anche usare super per fare riferimento a un campo nascosto (anche se i campi nascosti sono scoraggiati). Considerate questa classe, Superclass:
public class Superclass {
public void printMethod() {
System.out.println("Printed in Superclass.");
}
}
// Ecco una sottoclasse, chiamato sottoclasse, che sostituisce printMethod()
:
public class Subclass extends Superclass {
// overrides printMethod in Superclass
public void printMethod() {
super.printMethod();
System.out.println("Printed in Subclass");
}
public static void main(String[] args) {
Subclass s = new Subclass();
s.printMethod();
}
}
All'interno sottoclasse, il semplice nome printMethod()
si riferisce a quello dichiarato nella sottoclasse, che sovrascrive quello in Superclasse. Quindi, per fare riferimento a printMethod()
ereditato da Superclasse, la sottoclasse deve usare un nome qualificato, usando super come mostrato.La compilazione e l'esecuzione di stampe sottoclasse il seguente:
Printed in Superclass.
Printed in Subclass
Nota a margine: l'estensione di 'JFrame' non è probabilmente ciò che si intendeva fare. L'estensione implica una relazione is-a. A meno che tu non stia creando un nuovo componente per la finestra, probabilmente dovresti estendere 'JComponent'. – Jeffrey