接口混合继承不会在Java中引发错误?

时间:2018-10-08 20:44:30

标签: java inheritance hybrid

我有三个接口A,B和C,以及一个D类。B和C扩展了A,而D实现了B和C。接口A有一个默认方法“ does”。我原本希望有一个编译时错误或运行时错误,但是该程序执行时没有错误。 B和C都继承自A。编译器不应该对在D上调用哪个继承方法感到困惑,因为D继承了两个默认方法,一个是C的,另一个是B的。 所有这三个接口和类都在单独的文件中定义。我已将代码顺序放置在下面的代码区域中,以进行演示。

public interface A {

    default public void does(){
        System.out.println("A");
    }
}

public interface B extends A {
}

public interface C extends A {
}

public class D implements B, C {    
}

public class Sample {

    public static void main(String[] args) {

        new D().does();
    }

}

0 个答案:

没有答案