Как класс Util может принимать в качестве параметров типы CanFly и CanMove, если он не реализует соответствующие интерфейсы?
public class Solution {
public static void main(String[] args) {
Duck duck = new Duck();
Util.fly(duck);
Util.move(duck);
}
public static class Duck implements CanFly, CanMove {
@Override
public void doAnotherAction() {
System.out.println("Moving");
}
@Override
public void doAction() {
System.out.println("Flying");
}
}
public static class Util {
static void fly(CanFly animal) {
animal.doAction();
}
static void move(CanMove animal) {
animal.doAnotherAction();
}
}
public static interface CanFly {
void doAction();
}
public static interface CanMove {
void doAnotherAction();
}
}