Autor Tema: Ejemplo clases y métodos abstractos en Java. Abstract class. Ejercicio CU00695B  (Leído 3076 veces)

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Citar
Declara una clase abstracta Legislador que herede de la clase Persona, con un atributo provinciaQueRepresenta (tipo String) y otros atributos. Declara un método abstracto getCamaraEnQueTrabaja. Crea dos clases concretas que hereden de Legislador: la clase Diputado y la clase Senador que sobreescriban los métodos abstractos necesarios. Crea una lista de legisladores y muestra por pantalla la cámara en que trabajan haciendo uso del polimorfismo.

Buenas tardes, dejo aquí la solución a mi ejercicio (para descargar pulsar en el icono del archivo estando logado en el foro), comentar que distingo entre años de senador y años de congresista, porque así en una ampliación del programa se podria distinguir si esa persona concreta a llevado X como senador y X como congresista.

Descarté al final usar enums para la camara que representan pues al seleccionar 1 o 2 ya sabía si era senador o congresista en el modelo que planteo de menu.


« Última modificación: 01 de Mayo 2015, 09:00 por Alex Rodríguez »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:CU00695B Clases y métodos abstractos en Java. Abstract class.
« Respuesta #1 en: 30 de Abril 2015, 11:58 »
Hola Lorenzo, me parece un buen código

Buenas prácticas a destacar: uso de protected, sobreescritura de método toString, herencia con invocación de super al constructor de superclase, uso de diferentes clases, main corto y bien pensado...

Elige una opción entre 18 y 70 ¿es la edad no?

Recomendaciones: no usar la eñe en código como en añosDeSenador usar annosDeSenador

Hay una cosa un poco resbaladiza que es implementar el método abstracto como

public String getCamaraEnQueTrabaja(){ return camaraEnQueTrabaja; }

Está implementado por igual en ambas clases. Esto es válido para el ejercicio, pero hay que tener en cuenta que normalmente un método abstracto tendrá distintas implementaciones en las subclases, si no se definiría directamente como método no abstracto.

La clase EntradaDatos no parece que represente una entrada de datos, por eso pienso que sería mejor otro nombre como GestorEntradasYDatos o GestorDatosYOpciones.

Salu2!

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:CU00695B Clases y métodos abstractos en Java. Abstract class.
« Respuesta #2 en: 30 de Abril 2015, 14:27 »
Buenas Ogramar, gracias por tu tiempo como siempre.

Sobre la  edad, si debia indicarlo para que se sepa en la salida del print.

Las eñes gracias por decirmelo he de mentalizarme, porque cobra mucho sentido, es un caracter que solo tienen los teclados hispanos.

La implementación, del metodo getCamaraEnQueTrabaja, sé (o creo te refieres a eso) debería ser abstracto el método, pero quise probar a definir un método dentro de una clase abstracta, para ver si con instancias de subclase podia llamarlo. Fue más una prueba, comprendo lo que quieres decirme, con cualquier cambio en subclases daria error.

Entrada datos, es cierto la he fusionado con las funciones de cada campo solicitado, por lo tanto ya es más un GestorDeDatos, tomo nota.

Gracias como siempre, tengo muy en cuenta todo lo que se me dice.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".