Witam,
mam klasę GameObject oraz dziedziczące po niej Player i Monster. Klasa GameObject zawiera metodę move(). Klasy dziedziczące przesłaniają to metodę w tym stylu:
@Override
public void move() {
super.move();
// dalsze działania w zależności od obiektu
}
Obiekty na planszy przechowuje w liście, następnie je iteruje:
for(Iterator<GameObject> i = P.get().getLevel().getGameObjectsList().iterator(); i.hasNext(); ) {
GameObject item = i.next();
if(item.getObjectState() == ObjectState.IDLE) {
item.move();
}
}
Problemem jest to, że wywołuje się metoda z GameObject, a nie ta przesłonięta z racji tego, że nie ma rzutowania. Jak automatycznie to rzutować? Za pomocą getClass() jestem w stanie pobrać jakiego typu to obiekt, ale za nic nie mogę z tego rzutować. Można to oczywiście zrobić na if, ale wolałbym jakoś automatycznie.