Реализация метода для морских существ вполне подходит для выдры. Было бы разумно её переиспользовать. Возможно ли это с учётом того, displaySwim имеет модификатор private?
interface CanSwim {
void swim();
}
static abstract class SeaCreature implements CanSwim {
@Override
public void swim() {
SeaCreature currentCreature = (SeaCreature) getCurrentCreature();
currentCreature.displaySwim();
}
private void displaySwim() {
System.out.println(getCurrentCreature().getClass().getSimpleName() + " is swimming");
}
CanSwim getCurrentCreature() {
return this;
}
}
static class RiverOtter implements CanSwim, CanWalk{}