آپریٹر کا استعمال کرتے ہوئے
instanceof
، آپ یہ جان سکتے ہیں کہ کوئی چیز کس کلاس سے آئی ہے۔ اس آپریٹر کے پاس دو دلائل ہیں۔ بائیں طرف آبجیکٹ کا حوالہ ہے، اور دائیں طرف اس قسم کا نام ہے جس کے ساتھ آبجیکٹ کو مطابقت کے لیے چیک کیا جاتا ہے۔ مثال کے طور پر:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
نتیجہ درست نکلے گا ۔ اس طرح، آپریٹر instanceof
حوالہ کی قسم پر انحصار نہیں کرتا، بلکہ اس چیز کی خصوصیات پر انحصار کرتا ہے جس سے وہ حوالہ دیتا ہے۔ لیکن یہ آپریٹر ایک حقیقی قدر واپس کرتا ہے نہ صرف اس قسم کے لیے جس سے آبجیکٹ اخذ کیا گیا تھا۔ آئیے پہلے سے اعلان کردہ کلاسوں میں ایک اور اضافہ کریں:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
اب ایک نئی قسم کا متغیر بنائیں:
Parent p = new ChildOfChild();
print(p instanceof Child);
پہلی سطر قسم کے ایک متغیر کا اعلان کرتی ہے Parent
، جس کا آغاز کسی شے کے حوالے سے کیا جاتا ہے ChildOfChild
۔ دوسری سطر میں، بیان کلاس کے ساتھ instanceof
قسم کے حوالہ کی مطابقت کا تجزیہ کرتا ہے ، اور اس میں شامل اعتراض پہلی یا دوسری کلاس سے اخذ نہیں کیا گیا ہے۔ تاہم، آپریٹر درست واپس آئے گا کیونکہ جس کلاس سے یہ آبجیکٹ اخذ کیا گیا ہے وہ وراثت میں ملتا ہے ۔ اصل ماخذ سے لنک: آپریٹر instanceofParent
Child
Child
GO TO FULL VERSION