El operador instanceof sirve para consultar si un objeto es una instancia de una
clase determinada, o de su padre. Se utiliza para evitar hacer casting de objetos a la hora de tratar un objeto de una forma y otra, llamando a un mtodo de una clase o de otra dependiendo de qu tipo de objeto sea.
Ejemplo:
class Punto { protected int x, y;
public Punto ( int x, int y ) {
this.x = x; this.y = y; }
// Devuelve la distancia al eje de coordenadas
public float distancia() { return Math.sqrt(Math.pow(x,2.0)+Math.pow(y,2.0)); } }
class Punto3D extends Punto {
private int z;
public Punto3D ( int x, int y, int z ) {
super(x,y); this.z = z; }
// Devuelve la distancia al eje de coordenadas
public float distancia() { return Math.sqrt(Math.pow(x,2.0)+Math.pow(y,2.0)+Math.pow(z,2.0)); } }
public class EjemploInstanceof {
public EjemploInstanceof () { }
public static boolean is3D(Punto p) { con p2 devuelve false
return (p instanceof Punto3D); con p3 devuelve true } p3 instanceof Punto devuelve true public static void main(String[] args) { Punto p2 = new Punto(0,0); Punto p3 = new Punto3D(0,0,10);