À l'aide de l'opérateur
instanceof
, vous pouvez découvrir de quelle classe provient un objet. Cet opérateur a deux arguments. À gauche se trouve une référence à l'objet et à droite le nom du type avec lequel la compatibilité de l'objet est vérifiée. Par exemple:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Le résultat sera vrai . Ainsi, l’opérateur instanceof
ne s’appuie pas sur le type de la référence, mais sur les propriétés de l’objet auquel elle fait référence. Mais cet opérateur renvoie une valeur vraie non seulement pour le type dont l'objet est dérivé. Ajoutons-en une de plus aux classes déjà déclarées :
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Créons maintenant une variable d'un nouveau type :
Parent p = new ChildOfChild();
print(p instanceof Child);
La première ligne déclare une variable de type Parent
, qui est initialisée avec une référence à un objet dérivé de ChildOfChild
. Dans la deuxième ligne, l'instruction instanceof
analyse la compatibilité de la référence de type Parent
avec la classe Child
et l'objet impliqué n'est dérivé ni de la première ni de la deuxième classe. Cependant, l'opérateur retournera true car la classe dont cet objet est dérivé hérite de Child
. Lien vers la source originale : instance de l'opérateur
GO TO FULL VERSION