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.