众所周知,interfaces
Java 可以实现多个。它们的实施顺序重要吗?我的意思是,实施 B, C 是否与 C, B in 相同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
. 杰瑞jre1.8.0_60
。