Назад к вопросам
Junior
70
questionbank
Как можно определить, что класс является производным от другого класса?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Используя оператор instanceof или метод isInstance() интерфейса Class.
// Пример с instanceof
if (myObject instanceof MyParentClass) {
// myObject является экземпляром MyParentClass или его наследника
}
// Пример с isInstance()
if (MyParentClass.class.isInstance(myObject)) {
// myObject является экземпляром MyParentClass или его наследника
}
Также можно проверить с помощью методов isAssignableFrom() или getSuperclass() класса Class.
// Пример с isAssignableFrom()
if (MyParentClass.class.isAssignableFrom(myObject.getClass())) {
// Класс myObject является экземпляром MyParentClass или его наследника
}
// Пример с getSuperclass() (требует рекурсивной проверки)
Class<?> currentClass = myObject.getClass();
while (currentClass != null) {
if (currentClass.equals(MyParentClass.class)) {
// myObject является экземпляром MyParentClass или его наследника
break;
}
currentClass = currentClass.getSuperclass();
}
Оператор instanceof и метод isInstance() являются наиболее прямолинейными и рекомендуемыми для этой задачи. isAssignableFrom() полезен для проверки совместимости типов при присвоении, а getSuperclass() требует дополнительных итераций.