ご存じのようにinterfaces、Java では複数を実装できます。それらの実装の順序は重要ですか? つまり、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 {
}
編集
私はEclipse(火星)を使用しています。JDK jdk1.8.0_51. JRE jre1.8.0_60。