La palabra reservada `super`
La palabra reservada super
en Java se utiliza para hacer referencia a la clase base de una clase derivada. Se puede utilizar para acceder a los miembros y métodos de la clase base desde la clase derivada y para invocar el constructor de la clase base desde el constructor de la clase derivada.
Acceso a miembros y métodos de la clase base
Cuando una clase hereda de otra clase, puede acceder a los miembros y métodos de la clase base utilizando la palabra reservada super
. Por ejemplo, si una clase derivada tiene un método con el mismo nombre que un método de la clase base, se puede utilizar super
para llamar al método de la clase base. Aquí hay un ejemplo de cómo se puede utilizar super
para acceder a un método de la clase base:
En este ejemplo, la clase Perro
hereda de la clase Animal
y tiene un método comer
que llama al método comer
de la clase Animal
utilizando super
. Esto permite que la clase Perro
agregue su propia funcionalidad al método comer
sin tener que reescribir todo el código del método comer
de la clase Animal
.
Invocación del constructor de la clase base
La palabra reservada super
también se puede utilizar para invocar el constructor de la clase base desde el constructor de la clase derivada. Esto se hace utilizando super
seguido de paréntesis que contienen los argumentos necesarios para el constructor de la clase base. Aquí hay un ejemplo de cómo se puede utilizar super
para invocar el constructor de la clase base:
En este ejemplo, la clase Perro
hereda de la clase Animal
y tiene un constructor que invoca el constructor de la clase Animal
utilizando super
. Esto permite que la clase Perro
inicialice los campos nombre
y edad
de la clase Animal
antes de inicializar su propio campo raza
.
Conclusión
La palabra reservada super
en Java es una herramienta poderosa que se utiliza para hacer referencia a la clase base de una clase derivada. Se puede utilizar para acceder a los miembros y métodos de la clase base y para invocar el constructor de la clase base desde el constructor de la clase derivada. Esto permite que las clases derivadas hereden funcionalidad de la clase base y extiendan su comportamiento de manera eficiente.