Подход, который я, наконец, принимаю, - это определить интерфейс, скажем FooInterface
с foo()
методом, и пусть все дочерние классы реализуют его, тогда я мог бы просто набрать cast obj для этого интерфейса и вызвать метод foo()
например:
Parent obj = ...// Object of one of the child classes
.....
if(obj instanceof FooInterface){
((FooInterface)obj).foo();
}