ご存じのように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
。