多继承2025.11.20

21 阅读1分钟

package level02

/*
 特质: trait
 它用来实现多继承
**/

object class99 {
  trait Tall {
    var height:Int = 180
  }

  trait Eye {
    var beautifulEye:String = "大眼睛"
  }

  // class 就有两个父类
  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 字段,实现了多维度属性的复用。

、特质的优势

  1. 多继承能力:突破类的单继承限制,一个类可以混入多个特质,组合出丰富的行为。
  2. 代码复用:将通用的属性或方法抽离到特质中,多个类可以共享这些逻辑,减少重复代码。
  3. 灵活性:特质可以被动态混入(比如在实例化时通过 with 追加),让代码的扩展性更强