Scala 特性与模块化编程:Traits、包与导入详解
1. Traits 的特性与优势
Traits 是 Scala 中实现类似多继承功能的一种方式,它允许一个类从多个类样结构中继承特性。与许多语言中的多继承不同,Traits 对 super
关键字的解释方式独特,这一特性使得行为的堆叠变得简单和直观。
1.1 Mixin 顺序的重要性
Mixin 的顺序在 Traits 中至关重要。一般来说,越靠右的 Trait 会先起作用。当调用一个带有 Mixin 的类的方法时,最右边的 Trait 中的方法会首先被调用。如果该方法调用了 super
,则会调用其左边下一个 Trait 中的方法,依此类推。
例如:
scala> queue.get()
res17: Int = 2
假设有 Filtering
和 Incrementing
两个 Trait,当按 new BasicIntQueue with Filtering with Incrementing
的顺序混合时, Filtering
的 put
方法会先被调用,它会移除初始为负数的整数;接着 Incrementing
的 put
方法会被调用,对剩余的整数加 1。
如果顺序颠倒,先对整数进行