Первое, что касается функционального интерфейса, это то, что он может иметь только один абстрактный метод. В этом случае вы даже не можете думать о втором методе (пусть это тоже будет абстрактный метод).у вас может быть любое количество методов по умолчанию.
Таким образом, ответ на 100% невозможен, и ваш код, приведенный выше, получит ошибку компиляции, поскольку вы сохранили аннотацию @FunctionalInterface, которая строго запрещает хранить более одного абстрактного метода.В соответствии с вашим кодом
@FunctionalInterface
public interface MyInter {
public abstract void fly();
public abstract void fly(int a);
default void fly() {} \\line1
default void fly(int g) { } \\line2
}
строки 1 и 2 приведут к ошибке времени компиляции, так как java видит их по имени метода, и типы аргументов одинаковы, они никогда не будут беспокоиться о типе возвращаемого значения или по умолчанию или т. Д.(основное правило перегрузки).
больше, если удалить строки 1 и 2, то и код выдаст ошибку, потому что @functionalinterface выдаст ошибку компиляции с указанием недопустимой аннотации @FunctionalInterface;MyInter не является функциональным интерфейсом .
Надеюсь, это ответит на ваш вопрос ...