Menggunakan operator
instanceof
, anda boleh mengetahui kelas mana objek berasal. Operator ini mempunyai dua hujah. Di sebelah kiri ialah rujukan kepada objek, dan di sebelah kanan ialah nama jenis yang objek itu diperiksa untuk keserasian. Sebagai contoh:
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Hasilnya akan menjadi benar . Oleh itu, pengendali instanceof
tidak bergantung pada jenis rujukan, tetapi pada sifat objek yang dirujuk. Tetapi pengendali ini mengembalikan nilai sebenar bukan sahaja untuk jenis yang objek itu diperoleh. Mari tambah satu lagi pada kelas yang telah diisytiharkan:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Sekarang mari kita buat pembolehubah jenis baharu:
Parent p = new ChildOfChild();
print(p instanceof Child);
Baris pertama mengisytiharkan pembolehubah jenis Parent
, yang dimulakan dengan rujukan kepada objek yang diperoleh daripada ChildOfChild
. Dalam baris kedua, penyataan instanceof
menganalisis keserasian rujukan jenis Parent
dengan kelas Child
, dan objek yang terlibat tidak diperoleh daripada kelas pertama atau kedua. Walau bagaimanapun, pengendali akan kembali benar kerana kelas dari mana objek ini diperolehi mewarisi daripada Child
. Pautan ke sumber asal: Operator instanceof
GO TO FULL VERSION