public interface InterfaceA {
void print();
default void testMethod() {
System.out.println("Print A");
}
}
public interface InterfaceB {
void print();
default void testMethod() {
System.out.println("Print B");
}
}
// 测试类1
public class ClassImpleAB implements InterfaceA{
@Override
public void print() {
}
}
// 测试类2
public class ClassImpleAB implements InterfaceA,InterfaceB{
@Override
public void print() {
}
}
// 报错:ClassImpleAB inherits unrelated defaults for testMethod() from types InterfaceA and InterfaceB
// 必须实现testMethod()方法
如果类实现了两个接口(类似“多继承”),两个接口又同时存在名字相同的default方法,在这样的情况下,编译器会报错。
原文:https://www.cnblogs.com/karamazov/p/15202208.html