Как мы все знаем, на Java можно реализовать несколько interfaces
. Имеет ли смысл их реализация? Я имею в виду, что реализация B, C такая же, как C, B в Java 8
? Мои тесты показывают, что порядок имеет значение, но может ли кто-нибудь объяснить логику этого?
public interface A {
public default void display() {
System.out.println("Display from A");
}
}
public interface B extends A {
public default void display() {
System.out.println("Display from B");
}
}
public interface C extends A {
public void display();
}
public interface D extends B, C {
}
Приведенный выше код работает нормально. Если изменить порядок B, C
на C, B
, это даст ошибку: The default method display() inherited from B conflicts with another method inherited from C.
public interface D extends C, B {
}
Edit
Я использую Eclipse (Mars). JDK jdk1.8.0_51
. JRE jre1.8.0_60
.