mamy dostęp SuperClass członków za pomocą super()
Jeśli metoda nadpisuje jedną z jego metod nadklasy, można wywołać metodę nadpisaną za pomocą słowa kluczowego super
. Możesz również użyć polecenia super, aby odnieść się do ukrytego pola (chociaż odstraszanie pól ukrytych jest odradzane). Rozważmy tę klasę, SuperClass:
public class Superclass {
public void printMethod() {
System.out.println("Printed in Superclass.");
}
}
// Tutaj jest podklasą, zwany Podklasa, który nadpisuje 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();
}
}
ciągu podklasie prosta nazwa printMethod()
odnosi się do jednego zadeklarowanego w podklasie których zastępuje ten w Superklasie. Tak więc, odnosząc się do printMethod()
odziedziczonej z Superklasy, Subklasa musi używać kwalifikowanej nazwy, używając super jak pokazano.Kompilacja i wykonywanie odbitek podklasy następuje:
Printed in Superclass.
Printed in Subclass
Nota boczna: rozszerzenie 'JFrame' prawdopodobnie nie jest tym, co zamierzałeś zrobić. Rozszerzenie oznacza relację is-a. O ile nie tworzysz nowego komponentu okna, prawdopodobnie powinieneś rozszerzać 'JComponent'. – Jeffrey