es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , ,

Answer

  1. Avatar for 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 principal ParentClass y ChildClass es una subclase de ParentClass, puede llamar directamente al método intro() desde ChildClass sin usar la palabra clave super.

    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 subclase ChildClass.

Comments are closed.