Scala多重继承机制

原文参考
https://my.oschina.net/Barudisshu/blog/419678

Scala多重继承机制
    Scala 的基于混入的类构成(mixin class composition)体系是线性混入构成(linearmixin compostion)和对称的混入模块(mixin modules),以及traits这三者的融合。

    Scala是通过类的全序化(Class Linearization),或称作类的线性化。线性化指出一个类的祖先类是一条线性路径的,包括超类(superclass)和特性(traits)。它通过两步来处理方法调用的问题:
    ① 使用右孩子优先的深度优先遍历搜索(right-first,depth-first search)算法进行搜索。
    ② 遍历得到的结构层次中,保留最后一个元素,其余删除。

    线性混入,即是指使用右孩子优先的深度优先遍历搜索算法,列出层次结构(Scala class hierarchy),因此Scala多重继承的混入类中,如果包含有混入类(Mixins,或称为混入组合),则多重继承中总是选择最右边的(right-mostly)的实现方法。分析如下代码:

猜你喜欢

转载自blog.csdn.net/weixin_33834137/article/details/87176879
今日推荐