Hola a todos, hoy os enseñare como se usa el operador instanceof en Java.
El operador instanceof nos permite comprobar si un objeto es de una clase concreta. Por ejemplo, tenemos 3 clases: Empleado (clase padre), Comercial (clase hija de Empleado) y Repartidor (clase hija Empleado).
Si ejecutas el ejemplo anterior, veras que cuando las clases hijas ademas de mostrar que es de su propia clase, también son de la clase Empleado, ya que, por ejemplo, un comercial «es un» empleado.
¿Pero que pasaría si quisiera ejecutar un método definido en la clase hija (en la clase padre no esta)? Debemos hacer un casting de objetos para poder ejecutarlo. Veamos un ejemplo:
Como vemos, para hacer un casting de objetos, creamos un objeto aparte de la clase que queremos hacer el casting y convertimos la posición del array ya que el array considera que contiene objetos de la clase Empleado.
También debemos tener en cuenta que podemos usar una interfaz en lugar de una clase. Supongamos que tenemos la clase Empleado y otra clase Persona cada una con una interfaz llamada Empleable. Veamos un ejemplo:
Recuerda que si ese método esta tanto en la clase padre como en la hija, no es necesario hacer el casting de objetos.
Te dejo un video para complementar:
Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.
Perfecto, no se puede explicar mejor, gracias! +10.
Que es un casting de objetos?
Es convertir un objeto a otro tipo de clase, solo funciona siempre y cuando sea compatible