Autor Tema: Ejemplo clases y métodos abstractos en Java con herencia Ejercicio CU00695B  (Leído 2905 veces)

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Hola,

esta es mi solución para este ejercicio.


Clase Persona:

Código: [Seleccionar]
public class Persona
{
    private String nombre;
    private String apellidos;
    private int edad;
   
    public Persona() {
        nombre = "";
        apellidos = "";
        edad = 0;
    }

    public Persona (String nombre, String apellidos, int edad) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
    }

    public String getNombre() {
        return nombre;
    }

    public String getApellidos() {
        return apellidos;
    }

    public int getEdad() {
        return edad;
    }

    public String toString() {
        Integer datoEdad = edad;
        return "-Nombre: ".concat(nombre).concat("\n").concat("-Apellidos: ").concat(apellidos).concat("\n").concat("-Edad: ").concat(datoEdad.toString());
    }
}

Clase Legislador:
Código: [Seleccionar]
public abstract class Legislador extends Persona
{
    protected String provinciaQueRepresenta;
    //protected String camaraEnQueTrabaja;
   
    public Legislador(String nombre, String apellidos, int edad, String provincia){
        super(nombre, apellidos, edad);
        provinciaQueRepresenta=provincia;
    }
   
    /**
    public void setCamaraEnQueTrabaja(String camara){
        camaraEnQueTrabaja=camara;
    }
    */
   
    public abstract String getCamaraEnQueTrabaja();
   
    public String toString(){
        return super.toString().concat("\n").concat("-Provincia que representa: ").concat(this.provinciaQueRepresenta);
    }
}

clase Diputado:
Código: [Seleccionar]
public class Diputado extends Legislador
{
    private static final String CAMARA="Congreso";
   
    public Diputado(String nombre, String apellidos, int edad, String provincia){
        super(nombre,apellidos,edad,provincia);
    }
   
    public String getCamaraEnQueTrabaja() {
        return CAMARA;
    }
   
    public String getProvinciaQueRepresenta(){
        return super.provinciaQueRepresenta;
    }
   
    public String toString(){
        return super.toString().concat("\n").concat("-Camara en la que trabaja: ").concat(getCamaraEnQueTrabaja().concat("\n"));
    }
}

Clase senador:
Código: [Seleccionar]
public class Senador extends Legislador
{
    private static final String CAMARA="Senado";
   
    public Senador(String nombre, String apellidos, int edad, String provincia){
        super(nombre,apellidos,edad,provincia);
    }
   
    public String getCamaraEnQueTrabaja() {
        return CAMARA;
    }
   
    public String getProvinciaQueRepresenta(){
        return super.provinciaQueRepresenta;
    }
   
    public String toString(){
        return super.toString().concat("\n").concat("-Camara en la que trabaja: ").concat(getCamaraEnQueTrabaja()).concat("\n");
    }
}

Y clase main:
Código: [Seleccionar]
import java.util.ArrayList;

public class MainClass
{
    public static void main(String[] Argas){
        Diputado diputado1=new Diputado("Juan", "Martinez", 35, "Madrid");
        Diputado diputado2=new Diputado("Carlos", "Goñi", 39, "Valencia");
        Diputado diputado3=new Diputado("Alberto", "deMiguel", 44, "Barcelona");
        Diputado diputado4=new Diputado("Juan", "Corbalan", 45, "cadiz");
        Senador senador1=new Senador("Alberto", "Rodriguez", 45, "Salamanca");
        Senador senador2=new Senador("Daniel", "Diaz", 55, "Galicia");
        Senador senador3=new Senador("David", "Gomez", 39, "Burgos");
        Senador senador4=new Senador("Julio", "Prieto", 54, "Murcia");
       
        ArrayList<Legislador> listaLagisladores=new ArrayList<>();
       
        listaLagisladores.add(diputado1);
        listaLagisladores.add(diputado2);
        listaLagisladores.add(diputado3);
        listaLagisladores.add(diputado4);
        listaLagisladores.add(senador1);
        listaLagisladores.add(senador2);
        listaLagisladores.add(senador3);
        listaLagisladores.add(senador4);
       
        for(Legislador tmp:listaLagisladores){
            System.out.println(tmp.toString());
        }
    }
}

Un saludo.
« Última modificación: 04 de Agosto 2015, 18:39 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, revisado el codigo y todo bien

Has declarado private static final String CAMARA="Congreso"; y  private static final String CAMARA="Senado"; esto no lo pedía el ejercicio pero parece buena idea puesto que son atributos constantes y siempre iguales para todos los objetos de tipo Diputado o Senador por eso parece logico que puedan definirse como atributos de clase y constantes, en lugar de como atributos de objeto.

Saludos

 

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".