с использованием instanceof
или Class#getClass()
A returned = getA();
if (returned instanceof B) { .. }
else if (returned instanceof C) { .. }
getClass()
вернет либо: A.class
, B.class
, C.class
Внутри предложения if вам нужно уменьшить значение, т. Е.
((B) returned).doSomethingSpecificToB();
Тем не менее, иногда считается, что использование instanceof
или getClass()
является плохой практикой. Вы должны использовать полиморфизм , чтобы избежать необходимости проверять конкретный подкласс, но я не могу рассказать вам больше с предоставленной информацией.