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