Вот я создал объект протестировать, по задания создал speed с типом аргумента CanFly canfly, но что это значит и как работает я не понял. Помогите разобраться.
public static void main(String[] args) throws Exception {
        Ty ty = new Ty();
        ty.speed(5);
        System.out.pritnln(ty.speed(5));
    }

    interface CanMove {
        Double speed();
    }

    interface CanFly extends CanMove {
        Double speed(CanFly canfly);
    }

    class Ty implements Canfly {
        public Double speed(Canfly Canfly){
            return speed*2;
        }
    }
}