La Palabra Clave super en Java

La Palabra Clave super en Java

1. Introducción

En este breve tutorial, echaremos un vistazo a la palabra clave super en Java.

En pocas palabras, podemos usar la palabra clave super para acceder a la clase padre.

Exploremos las aplicaciones de esta palabra clave fundamental en el lenguaje.

2. La Palabra Clave super con Constructores

Podemos usar super() para llamar al constructor por defecto de la clase padre. Debe ser la primera declaración en un constructor.

En nuestro ejemplo, usamos super(mensaje) con el argumento de tipo String:

public class SubClase extends SuperClase {

    public SubClase(String mensaje) {
        super(mensaje);
    }
}

Creemos una instancia de la clase hija y veamos lo que sucede detrás:

SubClase hijo = new SubClase("mensaje desde la clase hija");

La palabra clave new invoca el constructor de SubClase, que a su vez llama primero al constructor de la clase padre y le pasa el argumento de tipo String.

3. Acceso a Variables de la Clase Padre

Creemos una clase padre con la variable de instancia mensaje:

public class SuperClase {
    String mensaje = "clase super";

    // constructor por defecto

    public SuperClase(String mensaje) {
        this.mensaje = mensaje;
    }
}

Ahora, creemos una clase hija con una variable del mismo nombre:

public class SubClase extends SuperClase {

    String mensaje = "clase hija";

    public void obtenerMensajePadre() {
        System.out.println(super.mensaje);
    }
}

Podemos acceder a la variable de la clase padre desde la clase hija utilizando la palabra clave super.

4. La Palabra Clave 'super' con la Sobrescritura de Métodos

En la siguiente lección, hablaremos sobre la sobrescritura de métodos y entraremos en más detalle. Por el momento, veamos este ejemplo:

Agreguemos un método de instancia a nuestra clase padre:

public class SuperClase {

    String mensaje = "clase super";

    public void imprimirMensaje() {
        System.out.println(mensaje);
    }
}

Y sobrescribamos el método imprimirMensaje() en nuestra clase hija:

public class SubClase extends SuperClase {

    String mensaje = "clase hija";

    public SubClase() {
        super.imprimirMensaje();
        imprimirMensaje();
    }

    public void imprimirMensaje() {
        System.out.println(mensaje);
    }
}

Podemos usar super para acceder al método sobrescrito desde la clase hija. super.imprimirMensaje() en el constructor llama al método de la clase padre de SuperClase.

5. Conclusión

En este artículo, hemos explorado la palabra clave super en más profundidad.