JavaRush /Java блог /Random UA /Оператор instanceof
articles
15 рівень

Оператор instanceof

Стаття з групи Random UA
Використовуючи оператор instanceof, можна дізнатися, якого класу стався об'єкт. Цей оператор має два аргументи. Ліворуч вказується посилання на об'єкт, а праворуч - ім'я типу, на сумісність з яким перевіряється об'єкт. Наприклад: Оператор instanceof - 1
Parent р = new Child(); // проверяем переменную р типа Parent
//на совместимость с типом Child print(p instanceof Child);
Результатом буде true . Отже, оператор instanceofспирається не так на тип посилання, але в властивості об'єкта, який вона посилається. Але цей оператор повертає справжнє значення як для типу, від якого був породжений об'єкт. Додамо до вже оголошених класів ще один:
// Объявляем новый класс и наследуем
// его от класса Child
class ChildOfChild extends Child {}
Тепер заведемо змінну нового типу:
Parent p = new ChildOfChild();
print(p instanceof Child);
У першому рядку оголошується змінна типу Parent, яка ініціалізується на об'єкт, породжений від ChildOfChild. У другому рядку оператор instanceofаналізує сумісність посилання типу Parentз класом Child, причому об'єкт, що задіяний, не породжений ні від першого, ні від другого класу. Проте оператор поверне true , оскільки клас, від якого цей об'єкт породжений, успадковується від Child. Посилання на першоджерело: Operator instanceof
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ