En el mundo Java, todos son objetos, y para poderlos crear, necesitamos clases, este ejercicio presenta como podemos crear las clases que nos solicitan, y porque lo hacemos asi.
Si revisamos el grafico UML que nos presentan en https://recursosformacion.com/2022/09/ejercicios-java-8-objetos-y-clases/ vemos que nos dibujan una clase (Personas) y que nos dicen que es abstracta, y que implementa una interfaz Salvable.
Dado que todas las clases restantes heredan de Persona, la única explicación para diseñar la interfaz independiente, es porque seguramente, en nuestro aplicativo, habrá mas clases que implementaran esa interfaz, pero que no heredaran de Persona, (Imaginemos mas objetos salvables como Poblaciones, Provincias, Productos…)
Diseñemos entonces la interfaz

Solo tenemos que indicar los métodos que define, sin necesidad de implementar código.
Ahora, ya podemos escribir nuestra clase Persona que debe implementar Salvable, y la escribimos con los getters y setters necesarios

Como la clase ha de ser abstracta, porque no sabemos como implementar toString (no sabemos que atributos tiene sus hijos) , y tampoco sabemos como resolver los métodos que define la interfaz, no hace falta que los mencionemos, ya que deberían quedar vacíos
Ahora ya podemos definir Cliente

Para eso, hemos añadido los atributos que faltaban, el constructor propio, que primero llama al constructor del padre, y luego, ya puede salvar los datos, y los getters y setter de el, ya que el padre aporta los suyos. Por ultimo, definimos los métodos que nos han llegado abstract, desde el padre (toString) y desde la interfaz (salvar y leer) en los que solo usamos impresiones en consola para ver que pasan.
A continuación, creamos la clase Usuario, siguiendo el mismo proceso anterior

Por ultimo, debemos escribir un módulo en que se instancie un par de veces cada clase, y podamos comprobar que todo funciona.
Mi solucion es esta, en donde vemos también efectos de polimorfismo

Teneis esta solucion explicada, en mi canal de YouTube (https://youtu.be/1OtNmsO_-Oo)
Relacionado
Descubre más desde Recursos para formacion
Suscríbete y recibe las últimas entradas en tu correo electrónico.