Как это новая модель, интерфейс работает и что
Есть идеальное объяснение на языке Java лямбда-часто задаваемые вопросы]1. Вот цитата из того, что о проблеме Алмаз? статья есть:
interface A {
void m() default { ... }
}
interface B extends A {}
interface C extends A {}
class D implements B, C {}
В первоначальном случае (приведенном выше коде), осуществление м по наследству Д однозначно, что определено а — нет другой возможности. Если ситуация изменилась так, что б теперь также заявляет реализацию по умолчанию м, что будет реализация, что Д наследует “самым конкретную реализацию” правило. Но если оба Б и С обеспечивает реализации по умолчанию, потом конфликт, и Д следует либо использовать синтаксис Х. супер.м(...) чтобы явно выбрать один из них, или же переопределить сам метод, перекрывая все объявления супертипа.
Будьте уверены, чтобы проверить предыдущие статьи о правилах разрешения конфликтов заявления, способ и другие статьи на Java-проект лямда — они вполне хорошие.
Вот подробное объяснение для версия Java 8' новая модель интерфейс &усилителя; эта проблема множественного наследования.
как вы могли заметить по этим примерам, начиная с <б>с JDK 8</б>, Ява ввел своего рода <б>множественное наследование</б> а как <б><и>класс</а></б> и его <б><и>интерфейс</а></б> может содержать <б><и>реализация</а></б> в тот же метод (с тем же именем &ампер;ампер;&ампер;усилитель; nbsp;подпись). Для решения <а л; href="и http://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem">Алмаз проблема</а>&ампер;усилитель; nbsp;есть преимущество, в каком порядке в реализации используется: только если <б>класс реализует все</б> <я и GT; стиль=то"шрифт-вес: смелые; и">по умолчанию</а> / факультативная методы ее интерфейсы, код может быть скомпилирован и реализации этого используемого класса. <б>в противном случае</б> компилятор пытается залатать отсутствует реализация(ы) с <и>интерфейс'ы по умолчанию реализация</я и GT;. И если есть несколько реализаций по умолчанию метода, то&усилителя;и nbsp;<а л; href="и http://en.wikipedia.org/wiki/Multiple_inheritance#The_diamond_problem">Алмаз проблема</а>&ампер;усилитель; nbsp;возникает, и компилятор отвергает компиляции.<БР /> <БР /> в Java 8' новые интерфейсы модель является результатом приближается&усилителя;и nbsp;<б>совместимость</б> я. е. держать существующий код, который был написан против предварительной интерфейсы в Java 8 компилируемые.