Junior
Чӣ тавр муайян кардан мумкин аст, ки оё синф аз синфи дигар мерос гирифтааст?
sobes.tech AI
Ҷавоб аз 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() талаб мекунад, ки иловагӣ итератсияҳо анҷом дода шаванд.