Вы можете увидеть следующее из java документов.
Расширение интерфейсов, содержащих методы по умолчанию:
Когда вы расширяете интерфейс, содержащий по умолчанию, вы можете сделать следующее:
- Не говоря уже о методе по умолчанию, который позволяет вашему расширенному интерфейсу наследовать метод по умолчанию.
- Повторно объявить метод по умолчанию, что делает его abstract.
- Переопределите метод по умолчанию, который переопределяет его.
из документации, которую мы можем увидеть, когда мы расширяем интерфейс, который имеет метод по умолчанию. Если мы переопределим метод по умолчанию, он переопределит метод по умолчанию. В вашем случае интерфейс f1
метод по умолчанию переопределяется реализацией в интерфейсе f2
.
Если вы хотите получить вывод метода по умолчанию в интерфейсе f1
, не переопределяйте метод по умолчанию в интерфейсе f2
.
Если вы измените свой интерфейс f2
, как показано ниже, вы получите вывод «f1».
interface f2 extends f1 {
}
Ссылка: Методы по умолчанию