Java instanceof (com exemplos)

Neste tutorial, você aprenderá sobre o operador Java instanceof em detalhes com a ajuda de exemplos.

O instanceofoperador em Java é usado para verificar se um objeto é uma instância de uma classe específica ou não.

Sua sintaxe é

 objectName instanceOf className;

Aqui, se objectName for uma instância de className, o operador retornará true. Caso contrário, ele retorna false.

Exemplo: Java instanceof

 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); ) )

Resultado

 name é uma instância de String: true obj é uma instância de Main: true

No exemplo acima, criamos um nome de variável do Stringtipo e um objeto obj da classe Main.

Aqui, usamos o instanceofoperador para verificar se name e obj são instâncias da Stringclasse e Main respectivamente. E o operador retorna trueem ambos os casos.

Nota : Em Java, Stringé uma classe em vez de um tipo de dados primitivo. Para saber mais, visite Java String.

Instância Java durante a herança

Podemos usar o instanceofoperador para verificar se os objetos da subclasse também são uma instância da superclasse. Por exemplo,

 // 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 ) )

No exemplo acima, criamos uma subclasse Dog que herda da superclasse Animal. Criamos um objeto d1 da classe Dog.

Dentro da declaração de impressão, observe a expressão,

 d1 instanceof Animal

Aqui, estamos usando o instanceofoperador para verificar se d1 também é uma instância da superclasse Animal.

Instância Java na interface

O instanceofoperador também é usado para verificar se um objeto de uma classe também é uma instância da interface implementada pela classe. Por exemplo,

 // 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 ) )

No exemplo acima, a classe Dog implementa a interface Animal. Dentro da declaração de impressão, observe a expressão,

 d1 instanceof Animal

Aqui, d1 é uma instância da classe Dog. O instanceofoperador verifica se d1 também é uma instância da interface Animal.

Nota : Em Java, todas as classes são herdadas da Objectclasse. Portanto, as instâncias de todas as classes também são uma instância da Objectclasse.

No exemplo anterior, se verificarmos,

 d1 instanceof Object

O resultado será true.

Artigos interessantes...