Clases abstractas e interfaces

Clases abstractas

Interfaces

Características de las interfaces

Ejemplo de interfaces

Ejercicio:

Crear la clase abstracta Persona y las clases Alumno y Profesor basadas en Persona.

Basándote en la jerarquía de clases Persona, Alumno, y Profesor, crea un método abstracto llamado saludar para la clase Persona. Dependiendo del tipo de persona (alumno o profesor) el método saludar tendrá que devolver un String con un saludo del tipo “Hola, soy el alumno xxx y estoy en el grupo yyy” o bien “Hola, mi nombre es profesor xxx y soy de la especialidad zzz” donde xxx serán su nombre y apellidos, yyy el grupo del alumno y zzz la especialidad del profesor (habrá que hacer implementaciones específicas en cada clase derivada).

Una vez hecho esto, implementa completamente las tres clases (con todos sus atributos y métodos) y utilízalas en un pequeño programa de ejemplo que cree un objeto de tipo Alumno y otro de tipo Profesor, los rellene con información y muestre parte de esa información en la pantalla a través del método saludar.

Ejercicio:

Usar las clases Persona, Alumno y Profesor y la interfaz Imprimible con estos métodos:

String devolverContenidoString ();
List devolverContenidoList ();
Map devolverContenidoMap ();

Vamos a hacer dos programas de prueba:

  1. Uno en el que se piden los datos básicos de un usuario (atributos de un objeto de la clase Persona), así como el tipo de usuario (alumno o profesor). A partir de esa información se crea un objeto de la clase Alumno o Profesor, según sea el caso, donde los datos de la “especialización” (sueldo y especialidad si se trata de un profesor; o grupo y nota media si se trata de un alumno) los incluye el programa de manera automática. Con instanceof podremos saber de qué tipo de objeto se trata (Alumno o Profesor) y tratarlo de una manera más específica si se considera oportuno.
  2. Rellenamos una lista con cuatro usuarios (objetos de la clase Persona). Algunos serán de tipo Alumno y otros de tipo Profesor. Nuevamente utilizamos instanceof para saber qué tipo de objeto se trata en cada caso y tratarlo de forma específica.

Deja un comentario