A palavra-chave instanceof em Java é usada para verificar se um objeto é uma instância de uma classe específica ou implementa uma interface. Ela retorna um valor booleano (true ou false), dependendo se o objeto é do tipo especificado ou não.
Sintaxe de instanceof
objeto instanceof Tipo
objeto: A referência do objeto a ser verificado.Tipo: A classe ou interface a ser comparada.
Se o objeto for uma instância da classe especificada ou implementa a interface, a expressão retorna true. Caso contrário, retorna false.
Exemplo de Uso de instanceof
class Animal { }
class Cachorro extends Animal { }
public class Main {
public static void main(String[] args) {
Animal a = new Cachorro();
// Verificando se 'a' é uma instância de Cachorro
if (a instanceof Cachorro) {
System.out.println("a é uma instância de Cachorro");
} else {
System.out.println("a não é uma instância de Cachorro");
}
// Verificando se 'a' é uma instância de Animal
if (a instanceof Animal) {
System.out.println("a é uma instância de Animal");
}
}
}
Posts recentes
Saída:
a é uma instância de Cachorro
a é uma instância de Animal
No exemplo acima:
a instanceof Cachorroretornatrueporqueafoi instanciado como um objeto da classeCachorro.a instanceof Animaltambém retornatrue, porqueCachorroherda deAnimal.
Usos Comuns
Verificação de Tipos em Herança e Polimorfismo: instanceof é frequentemente usado ao trabalhar com polimorfismo, para verificar o tipo real de um objeto em tempo de execução.
Verificação de Interfaces: O operador também pode ser usado para verificar se um objeto implementa uma interface.
interface Voavel { }
class Passaro implements Voavel { }
public class Main {
public static void main(String[] args) {
Passaro p = new Passaro();
// Verificando se 'p' implementa a interface Voavel
if (p instanceof Voavel) {
System.out.println("p pode voar");
}
}
}
Saída:
p pode voar
Regras Importantes:
- Se
objetofornull, a expressãoobjeto instanceof Tiposempre retornafalse. instanceofsó pode ser usado com tipos de referência (classes e interfaces), não com tipos primitivos.
Exemplo com null:
Animal a = null;
if (a instanceof Animal) {
System.out.println("a é uma instância de Animal");
} else {
System.out.println("a não é uma instância de Animal");
}
Saída:
a não é uma instância de Animal
Resumo:
instanceofverifica se um objeto é de um tipo específico ou implementa uma interface.- Retorna
truese o objeto for uma instância do tipo especificado, caso contrário, retornafalse. - É muito útil para verificações de tipo em hierarquias de classes e interfaces.
