Palabra clave super: invocar métodos de superclases desde subclases en Java. Ejemplo básico. (CU00692B)

Resumen: Entrega nº92 del curso "Aprender programación Java desde cero". 
Codificación aprenderaprogramar.com: CU00692B 

 

 

USO DE SUPER PARA LLAMAR A MÉTODOS DE SUPERCLASE. EJEMPLO.

En apartados anteriores del curso hemos trabajando con herencia, polimorfismo y sobreescritura de métodos. Hemos usado como clases de ejemplo las clases Persona, Profesor, ProfesorInterino y ProfesorTitular, donde Profesor hereda de Persona y los profesores interino y titular de Profesor.

 

¿Cómo imprimir un listado con todos los profesores (titulares e interinos) y todos sus datos? En los métodos de Profesor solo tenemos disponibles los campos de Profesor, pero no los campos de ProfesorTitular o de ProfesorInterino. A su vez, ProfesorTitular (o ProfesorInterino) no conoce los campos de Profesor porque son privados, y no queremos hacerlos públicos para no romper el encapsulamiento (principio de ocultación) de la clase.

Hemos visto cómo en los constructores de subclases usábamos la sintaxis super() en la primera línea para invocar al constructor de la superclase. Veremos ahora que esta otra sintaxis: super.nombreDelMetodo(parámetros si los hay); tiene como efecto la invocación de un método de la superclase. Consideremos el ejemplo anterior. En el método mostrarDatos() de la clase ProfesorInterino escribimos lo siguiente:

//Ejemplo aprenderaprogramar.com

public void mostrarDatos() {

super.mostrarDatos();

System.out.println("Comienzo interinidad: " + FechaComienzoInterinidad.getTime().toString() );

}

 

 

¿Qué hemos hecho? Dentro del método “hijo” hemos incluido una llamada al método “padre” que había perdido visibilidad debido a que lo habíamos sobreescrito. Al ejecutar el programa ahora obtenemos:

Se procede a mostrar los datos de los profesores existentes en el listín

Datos Profesor. Profesor de nombre: Juan Hernández García con Id de profesor: Prof 22-387-11

Datos Profesor. Profesor de nombre: José Luis Morales Pérez con Id de profesor: Unknown

Comienzo interinidad: Fri Nov 22 12:40:38 CET 2019

 

 

Gracias a la instrucción super.mostrarDatos() hemos incluido dentro de un método sobreescrito el método deseado de la superclase. La llamada a super dentro de un método puede ocurrir en cualquier lugar dentro del código. Equivale a la ejecución del método de la superclase y es opcional: la hacemos sólo cuando nos resulta necesaria o conveniente para poder acceder a un método sobreescrito.

 

 

EJERCICIO

Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.

Como atributos de la superclase tendremos nombre (String), edad (int) y añosConsolidados (int). Un método de la superclase será double obtenerSalarioBase () que obtendrá el salario base como (725 + el número de años consolidados multiplicado por 33.25).

En la subclase se trabajará con el campo adicional añosEmerito. Queremos hacer lo siguiente: sobreescribir el método obtenerSalarioBase () en la subclase para calcular el salario base del profesor emérito invocando mediante la palabra clave super al cálculo del salario base de Profesor y añadiéndole la cantidad de (47.80 * añosEmerito).

Para comprobar si tu código es correcto puedes consultar en los foros aprenderaprogramar.com.

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.

Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

¿Puedo yo aprender?

Seas o no del área informática, si quieres aprender a programar te ofrecemos una solución guiada y personalizada: realizar un curso tutorizado on-line. Con este tipo de curso, podrás aprender a programar de forma ágil y amena.

Acceder a detalles y precios de los cursos tutorizados on-line

Política sobre cookies

Utilizamos cookies propias y de terceros para ofrecerte una mejor experiencia y servicio, de acuerdo a tus hábitos de navegación.

Si continúas navegando, consideramos que aceptas su uso. Puedes obtener más información en nuestra Política de Cookies.

En Facebook!

Ahora puedes seguirnos en Facebook. Noticias, novedades y mucho más ¡Te esperamos!

RANKING APR2+

Ranking de lenguajes y entornos de programación aprenderaprogramar.com
 

JULIO - AGOSTO 2017

1. Java / J2EE
2. Entornos Oracle
3. Entornos SQL Server
4. JavaScript, jQuery
5. .NET, C#
6. HTML, CSS
7. Android, iOS
8. Php, MySql


Acceder a detalles sobre el ranking de programación aprenderaprogramar.com

FOROS APR2+

Pregunta, responde, consulta, lee, intercambia...

Participa!!! Entra en los foros aprenderaprogramar.com.

             Copyright 2006-2017 aprenderaprogramar.com                La web abierta a cualquier persona interesada en la programación