Java中的多重继承 .通过扩展顺序分配优先级



Oracle Java 教程,状态、实现和类型的多重继承:

Java 编程语言不允许扩展多个类的一个原因是为了避免状态的多重继承问题,即从多个类继承字段的能力。例如,假设您能够定义一个扩展多个类的新类。通过实例化该类来创建对象时,该对象将从该类的所有超类继承字段。如果来自不同超类的方法或构造函数实例化同一个字段怎么办?

通过为子类扩展的所有类分配优先级,难道不能轻松解决这个问题吗?

class A extends B,C,D
{
}

让我们假设优先级是按照子类声明中提到的升序分配的。

那么B的优先级<D的优先级。因此,如果存在任何这些类B,C或D共有的状态或行为,那么优先级决定应该继承什么,应该隐藏什么。>

请指教。提前谢谢。

是的,粗略地说,这就是 Scala 支持扩展具有多个特征的类的方式

"优先级"是根据线性化方程确定的,类似于您提到的,因此没有歧义。

最新更新