Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: barriway en 22 de Julio 2015, 08:40

Título: Java ejemplo clases y métodos abstractos con herencia y sobreescritura CU00695B#
Publicado por: barriway en 22 de Julio 2015, 08:40
Buenos días.

Esta podría se una solución para el ejercicio propuesto.

Código: [Seleccionar]
public class Persona{
    private String dni;
    private String nombre;
    private int edad;
   
    public Persona(){
        dni="";
        nombre="";
        edad=0;
    }
   
    public Persona(String dni,String nombre,int edad){
        this.dni=dni;
        this.nombre=nombre;
        this.edad=edad;
    }
   
    public String toString(){
        return "Dni : "+dni+"\nNombre : "+nombre+"\nEdad : "+edad;
    }
}


Código: [Seleccionar]
public abstract class Legislador extends Persona{
    private String provinciaQueRepresenta;
   
    public Legislador(){
        super();
        provinciaQueRepresenta="";
    }
   
    public Legislador(String dni,String nombre,int edad,String provinciaQueRepresenta){
        super(dni,nombre,edad);
        this.provinciaQueRepresenta=provinciaQueRepresenta;
    }
   
    public String toString(){
        return super.toString()+"\nProvincia a la que representa : "+provinciaQueRepresenta;
    }
   
    abstract public String getCamaraEnQueTrabaja();
   
   
}


Código: [Seleccionar]
public class Senador extends Legislador{
   
    public Senador(){
        super();
    }
   
    public Senador(String dni,String nombre,int edad,String provinciaQueRepresenta){
        super(dni,nombre,edad,provinciaQueRepresenta);
    }
   
    public String toString(){
       return super.toString();
    }
   
    public String getCamaraEnQueTrabaja(){
        return "Senado";
    }
}


Código: [Seleccionar]
public class Diputado extends Legislador{
   
    public Diputado(){
        super();
    }
   
    public Diputado(String dni,String nombre,int edad,String provinciaQueRepresenta){
        super(dni,nombre,edad,provinciaQueRepresenta);
    }
   
    public String toString(){
       return super.toString();
    }
   
    public String getCamaraEnQueTrabaja(){
        return "Congreso";
    }
}


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

public class Test{
   
    public static void main(String Arg[]){
       
        ArrayList<Legislador> listaLegisladores = new ArrayList<Legislador>();
       
        listaLegisladores.add(new Diputado("11.111.111A", "Juan Bartolo Perdiguero",42,"A Coruña"));
        listaLegisladores.add(new Senador("11.111.111B", "Victoria González",45,"Cantabria"));
        listaLegisladores.add(new Diputado("22.222.222A", "Aitor Arritamendia",43,"Bizcaia"));
        listaLegisladores.add(new Senador("22.222.222B", "Paula Bartomeu",45,"Barcelona"));
        listaLegisladores.add(new Diputado("33.333.333A", "Ovido López",47,"León"));
        listaLegisladores.add(new Senador("33.333.333B", "Sabina Ramírez",45,"Valladolid"));
        listaLegisladores.add(new Diputado("44.444.444A", "Secundino Flores",48,"Zamora"));
        listaLegisladores.add(new Senador("44.444.444B", "Ana Isabel Tocino",40,"Soria"));
       
        System.out.println("Listado de legisladores\n");
        for(Legislador legislador:listaLegisladores){
            System.out.println("Representante en el : "+legislador.getCamaraEnQueTrabaja());
            System.out.println(legislador.toString()+"\n");     
        }
        System.out.println("Fin del listado de legisladores\n");
    }
}

Un saludo.
Título: Re:Java ejemplo clases y métodos abstractos con herencia y sobreescritura CU00695B#
Publicado por: Mario R. Rancel en 24 de Julio 2015, 21:58
Hola barriway

Ejercicio perfecto, además aplicando correctamente los conceptos relacionados con herencia vistos en las anteriores entregas del curso. Mis felicitaciones.

Saludos