Оператордун жардамы менен
instanceof
an object кайсы класстан келгенин биле аласыз. Бул оператордун эки аргументи бар. Сол жакта an objectке шилтеме, ал эми оң жакта an objectтин шайкештиги текшерилген түрдүн аталышы. Мисалы:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Натыйжа чын болот . Ошентип, оператор instanceof
шилтеменин түрүнө эмес, ал шилтеме кылган an objectинин касиеттерине таянат. Бирок бул оператор an object алынган түр үчүн гана эмес, чыныгы маанини кайтарат. Буга чейин жарыяланган класстарга дагы бирөөсүн кошолу:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Эми жаңы типтеги өзгөрмө түзөлү:
Parent p = new ChildOfChild();
print(p instanceof Child);
Биринчи сап түрдөгү өзгөрмөнү жарыялайт Parent
, ал инициализациядан алынган an objectке шилтеме менен жүргүзүлөт ChildOfChild
. Экинчи сапта билдирүү түр шилтемесинин класс менен instanceof
шайкештигин талдайт жана тартылган an object биринчи же экинчи класстан алынган эмес. Бирок, оператор чындыкты кайтарат , анткени бул an object алынган класс дан мураска алат . Түпнуска булакка шилтеме: Operator instanceofParent
Child
Child
GO TO FULL VERSION