package level02
object class99 {
trait Tall {
var height:Int = 180
}
trait Eye {
var beautifulEye:String = "大眼睛"
}
class Girl extends Tall with Eye {}
def main(args: Array[String]): Unit = {
val girl1 = new Girl()
girl1.beautifulEye
girl1.height
}
}
- 特质的定义:
Tall 和 Eye 分别定义了 “身高” 和 “眼睛” 的属性,并且包含了具体的初始值。
- 类的多继承:
Girl 类通过 extends 特质A with 特质B 的语法,同时混入了 Tall 和 Eye 两个特质,于是 Girl 的实例就拥有了这两个特质的所有字段和方法。
- 使用效果:在
main 方法中,我们创建 Girl 实例后,可以直接访问 height 和 beautifulEye 字段,实现了多维度属性的复用。
、特质的优势
- 多继承能力:突破类的单继承限制,一个类可以混入多个特质,组合出丰富的行为。
- 代码复用:将通用的属性或方法抽离到特质中,多个类可以共享这些逻辑,减少重复代码。
- 灵活性:特质可以被动态混入(比如在实例化时通过
with 追加),让代码的扩展性更强