Buenas tardes, Mario.
Dudo que te hayas equivocado tú, será que no me he explicado yo con propiedad.
Mira, el código de la clase "Legislador" es ese:
//Creamos una clase de tipo "abstract"
public abstract class Legislador extends Persona{
private String provinciaQueRepresenta;
private int anyosParlamento;
protected String camara;
public Legislador(String nombre, String apellidos, int edad, String provinciaQueRepresenta, int anyosParlamento, String camara){
super(nombre, apellidos, edad);
this.anyosParlamento = anyosParlamento;
this.provinciaQueRepresenta = provinciaQueRepresenta;
this.camara = camara;
}
public String getProvinciaQueRepresenta(){return provinciaQueRepresenta;}
public int getAnyosParlamento(){return anyosParlamento;}
//Creamos un método "abstract" el que no podremos invocar si no lo sobreescribamos en las subclases
abstract public String getCamaraEnQueTrabaja();
public String toString(){
Integer datoAnyosParlamento = anyosParlamento;
return super.toString()+"\nProvincia que representa: "+getProvinciaQueRepresenta()+", años que lleva en el parlamento: "+datoAnyosParlamento.toString()+", cámara en la que trabaja: "+camara;
}
public void mostrarCamara(Legislador legislador){
String tmp = "";
if(legislador instanceof Senador){
tmp = "Senador ";
}else{tmp = "Diputado ";}
System.out.println("El "+tmp+getApellidos()+" trabaja en la cámara: "+camara);
}
}
Y con el método "mostrarCamara" lo que quiero hacer es si le entre un objeto "Senador" cambie la variable temporal "tmp" a "Senador" y si no, que la cambie a "Diputado". Por eso especifico que entrará, en este método, un parámetro de tipo objeto de la clase abstracta "Legislador".
Sí, la variable "camara" es de esta clase, pero quería llegar un poquito más lejos. A lo mejor no era necesario.
Gracias.