Buenos días.
Esta podría se una solución para el ejercicio propuesto.
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;
}
}
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();
}
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";
}
}
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";
}
}
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.