在有关多继承类型的Oracle文档页面中,我们可以在此处找到准确的答案。这里我们首先应该知道java中多重继承的类型: -
多重继承状态。
多重继承的实现。
多重继承的类型。
Java“不支持状态的多重继承,但它支持使用默认方法实现多次继承,因为java 8发布和带接口的类型的多重继承。
那么这里出现的问题就是“钻石问题”以及Java如何解决这个问题: -
在多重继承实现的情况下,java编译器会出现编译错误,并要求用户通过指定接口名称来修复它。这里的例子: -
interface A {
void method();
}
interface B extends A {
@Override
default void method() {
System.out.println("B");
}
}
interface C extends A {
@Override
default void method() {
System.out.println("C");
}
}
interface D extends B, C {
}
所以在这里我们会得到错误: - 接口D从类型B和C继承方法()的无关默认值。接口D扩展B,C
您可以修复它: -
interface D extends B, C {
@Override
default void method() {
B.super.method();
}
}
在java的多重继承中允许它,因为接口不包含可变字段,并且只有一个实现属于该类,所以java不会给出任何问题,它允许你这样做。
在结论中我们可以说java不支持多重继承状态,但它确实支持多重继承实现和多重继承类型。