Hola.
Tengo este trozo de código.
En él, hay una clase "Elemento" que es padre de "Comida", "Puerta" y otras. Bueno, en el caso especial de "Comida" y "Puerta", éstas dos se manejan de forma diferente ya que tienen dos métodos ("getEnergia()" y "getMatrizDestino()") que no tienen las demás.
Mi pregunta es ¿Hay alguna forma de aplicar eso métodos sin estar recurriendo al "instanceof"?
Código:
personaje.setPuntos(matrizContenedora.getElemento(posicion).getPuntos() + personaje.getPuntos());
//Si el elemento es tipo Comida entonces aplica esto:
if (this instanceof Comida){
personaje.setEnergia(((Comida) matrizContenedora.getElemento(posicion)).getEnergia()+ personaje.getEnergia());
}
//Si el elemento es tipo Puerta aplica esto:
else if (this instanceof Puerta){
personaje.setMatrizContenedora(((Puerta) matrizContenedora.getElemento(posicion)).getMatrizDestino());
personaje.setPosicion(personaje.getMatrizContenedora().getPosicionVacia());
}
matrizContenedora.eliminarElemento(posicion);
Gracias.