podemos tener acceso a los miembros de la superclase utilizando super()
Si su método anula uno de los métodos de su superclase, puede invocar el método reemplazado mediante el uso de la palabra clave super
. También puede usar super para referirse a un campo oculto (aunque se desaconseja ocultar campos). Considere esta clase, la superclase:
public class Superclass {
public void printMethod() {
System.out.println("Printed in Superclass.");
}
}
// Aquí es una subclase, llamado subclase, que anula 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();
}
}
Dentro de subclase, la simple nombre printMethod()
se refiere a la declarada en la subclase, la cual anula el de Superclase. Entonces, para referirse a printMethod()
heredado de Superclass, Subclass debe usar un nombre calificado, usando super como se muestra.Compilar y ejecutar copias Subclase lo siguiente:
Printed in Superclass.
Printed in Subclass
Nota al margen: Extender 'JFrame' probablemente no sea lo que pretendía hacer. Extender implica una relación is-a. A menos que esté creando un nuevo componente de ventana, probablemente debería extender 'JComponent'. – Jeffrey