Operador instanceof
lunes, 4 de diciembre de 2023
El operador instanceof en Java se utiliza para verificar si un objeto es una instancia de una clase, subclase o implementa una interfaz específica.
La estructura de la sintaxis es la siguiente:
objeto instanceof Tipo
El operador evalúa si el objeto es una instancia de la clase o interfaz especificada y devuelve true si es el caso, y false en caso contrario.
Ejemplo de uso:
Object obj = new Estudiante();
if (obj instanceof Estudiante) {
// ...
}
Si el objeto es null, la expresión objeto instanceof Tipo siempre devuelve false.
if (objetoNulo instanceof CualquierClase) {
// Esto nunca se ejecutará porque objetoNulo es null
}
Para probar el uso del operador en una subclase, por ejemplo, en una clase Perro que herede de una clase de nivel superior Animal podemos ejecutar el siguiente código:
// Definición de la clase padre
class Animal {
public void hacerSonido() {
System.out.println("Sonido de animal");
}
}
// Definición de la clase hija que hereda de Animal
class Perro extends Animal {
public void hacerSonido() {
System.out.println("Guau guau");
}
public void perseguirCola() {
System.out.println("Persiguiendo la cola");
}
}
public class PruebaInstanceOf {
public static void main(String[] args) {
// Crear una instancia de la clase Perro
Animal miMascota = new Perro();
// Verificar si la instancia es de la clase Animal
if (miMascota instanceof Animal) {
System.out.println("Es un animal");
}
// Verificar si la instancia es de la clase Perro
if (miMascota instanceof Perro) {
System.out.println("Es un perro");
// Puedes hacer un casting seguro
Perro miPerro = (Perro) miMascota;
miPerro.hacerSonido(); // Esto imprimirá "Guau guau"
miPerro.perseguirCola(); // Esto imprimirá "Persiguiendo la cola"
} else {
System.out.println("No es un perro");
}
}
}
En este ejemplo, la clase Perro es una subclase de la clase Animal. La instancia miMascota es de tipo Animal, pero como se creó como una instancia de Perro, el operador instanceof permite comprobar si es una instancia específica de la clase Perro. Además se puede realizar una conversión segura del objeto después de verificar con instanceof.
Compártelo
Compártelo en tus redes sociales y desafía a tus amigos a resolver problemas de programación. Juntos, podemos aprender y crecer.
Copiado
El codigo se ha copiado correctamente en el portapapeles.