Usando o operador
instanceof
, você pode descobrir de qual classe veio um objeto. Este operador possui dois argumentos. À esquerda está uma referência ao objeto e à direita está o nome do tipo com o qual a compatibilidade do objeto é verificada. Por exemplo:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
O resultado será verdadeiro . Assim, o operador instanceof
não depende do tipo de referência, mas sim das propriedades do objeto ao qual se refere. Mas este operador retorna um valor verdadeiro não apenas para o tipo do qual o objeto foi derivado. Vamos adicionar mais uma às classes já declaradas:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Agora vamos criar uma variável de um novo tipo:
Parent p = new ChildOfChild();
print(p instanceof Child);
A primeira linha declara uma variável do tipo Parent
, que é inicializada com uma referência a um objeto derivado de ChildOfChild
. Na segunda linha, a instrução instanceof
analisa a compatibilidade da referência de tipo Parent
com a classe Child
, e o objeto envolvido não é derivado nem da primeira nem da segunda classe. No entanto, o operador retornará verdadeiro porque a classe da qual este objeto é derivado herda de Child
. Link para a fonte original: Operador instanceof
GO TO FULL VERSION