Бо истифода аз оператор
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
мутобиқати истинод Parent
бо навъи классро таҳлил мекунад Child
ва an objectи ҷалбшуда аз синфи якум ё дуюм гирифта намешавад. Аммо, оператор true бармегардонад, зеро синфе, ки ин an object аз он гирифта шудааст, аз Child
. Истинод ба манбаи аслӣ: Operator instanceof
GO TO FULL VERSION