Operatordan foydalanib
instanceof
, ob'ekt qaysi sinfdan kelganligini bilib olishingiz mumkin. Bu operator ikkita argumentga ega. Chap tomonda ob'ektga havola, o'ngda esa moslik tekshirilayotgan ob'ektning turi nomi. Masalan:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Natija haqiqat bo'ladi . Shunday qilib, operator instanceof
murojaat turiga emas, balki u murojaat qilayotgan ob'ektning xususiyatlariga tayanadi. Ammo bu operator faqat ob'ekt olingan tur uchun emas, balki haqiqiy qiymatni qaytaradi. Keling, allaqachon e'lon qilingan sinflarga yana bittasini qo'shamiz:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Endi yangi turdagi o'zgaruvchini yaratamiz:
Parent p = new ChildOfChild();
print(p instanceof Child);
Parent
Birinchi satr dan olingan ob'ektga havola bilan ishga tushiriladigan turdagi o'zgaruvchini e'lon qiladi ChildOfChild
. Ikkinchi qatorda bayonnoma instanceof
tur moslamasining Parent
sinf bilan mosligini tahlil qiladi Child
va jalb qilingan ob'ekt na birinchi, na ikkinchi sinfdan olinmaydi. Biroq, operator true ni qaytaradi , chunki bu ob'ekt olingan sinf dan meros bo'ladi Child
. Asl manbaga havola: Operator instanceof
GO TO FULL VERSION