Hola dferna el ejercicio está bien resuelto
Para hacer uso del polimorfismo, podríamos hacer que el tipo estático de todos los objetos fuera el tipo abstracto Legislador. Es decir, en lugar de
Diputado diputado1 = new Diputado("Pablo", "Iglesias", 38);
Diputado diputado2 = new Diputado("Iñigo", "Errejon", 34, "Madrid");
Senador senador1 = new Senador("Pedro", "Sanchez", 40);
Senador senador2 = new Senador("Antonio", "Morales", 45, "Sevilla");
[code]
escribiríamos esto otro
[code]
ArrayList<Legislador> legisladores = new ArrayList<Legislador>();
Legislador diputado1 = new Diputado("Pablo", "Iglesias", 38);
Legislador diputado2 = new Diputado("Iñigo", "Errejon", 34, "Madrid");
Legislador senador1 = new Senador("Pedro", "Sanchez", 40);
Legislador senador2 = new Senador("Antonio", "Morales", 45, "Sevilla");
Otra mejora que podría hacerse es evitar que se muestre por pantalla [provinciaQueRepresenta=null] cuando se trate de un senador
Saludos