Operatordan istifadə edərək
instanceof
obyektin hansı sinifdən olduğunu öyrənə bilərsiniz. Bu operatorun iki arqumenti var. Solda obyektə istinad, sağda isə obyektin uyğunluğu yoxlanılan növün adı var. Misal üçün:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Nəticə doğru olacaq . Beləliklə, operator instanceof
istinadın növünə deyil, istinad etdiyi obyektin xüsusiyyətlərinə əsaslanır. Lakin bu operator təkcə obyektin alındığı növ üçün deyil, həqiqi dəyəri qaytarır. Artıq elan edilmiş siniflərə daha birini əlavə edək:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
İndi yeni tipli dəyişən yaradaq:
Parent p = new ChildOfChild();
print(p instanceof Child);
Birinci sətir tipli dəyişəni elan edir Parent
, hansı ki, -dən alınan obyektə istinadla işə salınır ChildOfChild
. İkinci sətirdə ifadə tip istinadının siniflə instanceof
uyğunluğunu təhlil edir və cəlb olunan obyekt nə birinci, nə də ikinci sinifdən götürülmür. Bununla belə, operator true qaytaracaq , çünki bu obyektin alındığı sinif miras alır . Orijinal mənbəyə keçid: Operator instanceofParent
Child
Child
GO TO FULL VERSION