为什么在Java 8中实现接口(使用默认方法)的顺序很重要?
2022-09-03 14:55:38
众所周知,可以在Java中实现多个。其执行顺序是否重要?我的意思是,实现B,C是否与C,B相同?我的测试显示顺序确实很重要 - 但任何人都可以解释这背后的逻辑吗?interfaces
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(Mars)。杰德克 .杰瑞 .jdk1.8.0_51
jre1.8.0_60