Не могу понять для чего используется Swimmable getCurrentAnimal(). Насколько понимаю, классы Orca и Whale в случае наследования от OceanAnimal уже содержат метод swim и имплементировать отдельно интерфейс Swimmable не нужно, но как сделать так чтобы классы Orca и Whale правильно реализовали метод swim? И ещё вопрос по поводу конструкции OceanAnimal currentAnimal = (OceanAnimal) getCurrentAnimal(), что она делает?