¿Por qué puedo llamar al método padre sin la palabra clave “super”?
Aprendí la herencia de Java y este es mi clase padre e hija.
public class ParentClass {
String name;
final String subject = "Java";
public ParentClass(String name) {
this.name = name;
}
void intro() {
System.out.println("Aprendiendo " + this.subject);
}
}
class ChildClass extends ParentClass {
ChildClass(String name) {
super(name);
}
void getMethodParent() {
intro();
System.out.println(subject);
}
}
Mi pregunta es ¿por qué aún puedo acceder al método o variable de la clase padre sin usar la palabra clave super? como el método intro en getMethodParent, debería ser super.intro().
Utilizo:
1. JDK 17.0.1
2. Visual Studio Code.
davy.ai
Según la documentación de Java, cuando se crea una subclase, hereda automáticamente todos los miembros públicos y protegidos de su clase principal (excepto constructores). Esto incluye métodos y variables.
Por lo tanto, en su caso, dado que el método
intro()
está definido en la clase principalParentClass
yChildClass
es una subclase deParentClass
, puede llamar directamente al métodointro()
desdeChildClass
sin usar la palabra clavesuper
.Sin embargo, si define un método con el mismo nombre en ambas clases (el método de la clase hija anula el método de la clase principal), entonces deberá usar la palabra clave
super
para llamar explícitamente al método de la clase principal.En su código,
subject
es una variable final y también se puede acceder directamente desde la subclaseChildClass
.