En este tutorial, aprenderá sobre el operador instanceof de Java en detalle con la ayuda de ejemplos.
El instanceof
operador en Java se usa para verificar si un objeto es una instancia de una clase en particular o no.
Su sintaxis es
objectName instanceOf className;
Aquí, si objectName es una instancia de className, el operador regresa true
. De lo contrario, vuelve false
.
Ejemplo: instancia de Java
class Main ( public static void main(String() args) ( // create a variable of string type String name = "Programiz"; // checks if name is instance of String boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); // create an object of Main Main obj = new Main(); // checks if obj is an instance of Main boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); ) )
Salida
name es una instancia de String: true obj es una instancia de Main: true
En el ejemplo anterior, hemos creado un nombre de variable del String
tipo y un objeto obj de la clase Main.
Aquí, hemos usado el instanceof
operador para verificar si name y obj son instancias de la String
clase y Main respectivamente. Y el operador regresa true
en ambos casos.
Nota : en Java, String
es una clase en lugar de un tipo de datos primitivo. Para obtener más información, visite Java String.
Instancia de Java durante la herencia
Podemos usar el instanceof
operador para verificar si los objetos de la subclase también son una instancia de la superclase. Por ejemplo,
// Java Program to check if an object of the subclass // is also an instance of the superclass // superclass class Animal ( ) // subclass class Dog extends Animal ( ) class Main ( public static void main(String() args) ( // create an object of the subclass Dog d1 = new Dog(); // checks if d1 is an instance of the subclass System.out.println(d1 instanceof Dog); // prints true // checks if d1 is an instance of the superclass System.out.println(d1 instanceof Animal); // prints true ) )
En el ejemplo anterior, hemos creado una subclase Perro que hereda de la superclase Animal. Hemos creado un objeto d1 de la clase Dog.
Dentro de la declaración impresa, observe la expresión,
d1 instanceof Animal
Aquí, estamos usando el instanceof
operador para verificar si d1 también es una instancia de la superclase Animal.
Instancia de Java en la interfaz
El instanceof
operador también se usa para verificar si un objeto de una clase es también una instancia de la interfaz implementada por la clase. Por ejemplo,
// Java program to check if an object of a class is also // an instance of the interface implemented by the class interface Animal ( ) class Dog implements Animal ( ) class Main ( public static void main(String() args) ( // create an object of the Dog class Dog d1 = new Dog(); // checks if the object of Dog // is also an instance of Animal System.out.println(d1 instanceof Animal); // returns true ) )
En el ejemplo anterior, la clase Dog implementa la interfaz Animal. Dentro de la declaración impresa, observe la expresión,
d1 instanceof Animal
Aquí, d1 es una instancia de la clase Dog. El instanceof
operador comprueba si d1 también es una instancia de la interfaz Animal.
Nota : en Java, todas las clases se heredan de la Object
clase. Entonces, las instancias de todas las clases también son una instancia de la Object
clase.
En el ejemplo anterior, si marcamos,
d1 instanceof Object
El resultado será true
.