Neste tutorial, você aprenderá sobre o operador Java instanceof em detalhes com a ajuda de exemplos.
O instanceof
operador 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 String
tipo e um objeto obj da classe Main.
Aqui, usamos o instanceof
operador para verificar se name e obj são instâncias da String
classe e Main respectivamente. E o operador retorna true
em 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 instanceof
operador 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 instanceof
operador para verificar se d1 também é uma instância da superclasse Animal.
Instância Java na interface
O instanceof
operador 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 instanceof
operador verifica se d1 também é uma instância da interface Animal.
Nota : Em Java, todas as classes são herdadas da Object
classe. Portanto, as instâncias de todas as classes também são uma instância da Object
classe.
No exemplo anterior, se verificarmos,
d1 instanceof Object
O resultado será true
.