问题:
我们知道 Java 不允许扩展多个类,因为这会导致编译器无法决定使用哪个超类方法的钻石问题。使用接口默认方法,钻石问题是在Java 8中引入的。也就是说,因为如果一个类实现了两个接口,每个接口都定义了相同的默认方法,并且实现类没有覆盖公共默认方法,编译器就无法决定选择哪个实现。
解决方案:
Java 8需要为由多个接口实现的默认方法提供实现。因此,如果一个类同时实现了上面提到的两个接口,它就必须为通用默认方法提供一个实现。否则编译器会抛出编译时错误。
问题:
为什么这个解决方案不适用于多类继承,通过覆盖子类引入的常用方法?