Witam. Mam przykładowo klasę Item, z której dziedziczą klasy: Book oraz Audiobook. W innej klasie mam kontener "Item itemsTab", który przechowuje dziedziczące od Item obiekty klas Book oraz Audiobook. Jak teraz odwołać się za pomocą obiektu tego kontenera do metody, która jest w klasie np. Book, ale nie ma jej w Audiobook? Dla przykładu:
Wektor: itemsTab
Klasa Item:
abstract void print();
Klasa Book:
void print();
void doIt();
Klasa Audiobook:
void print();
void other();
Do metody print - nie ma problemy, odwołam się za pomocą itemsTab.get(i).print(). Gdy spróbuję jednak odwołać się za pomocą itemsTab.get(i).doIt(); (wiedząc, że dany obiekt jest na pewno książką) - "The method doIt() is undefined for the type Item"
Jak sobie z tym poradzić w Javie? W CPP zrobiłbym to po prostu za pomocą: ((Book*)itemsTab[i]) -> doIt();