25 trait基本使用

43 阅读1分钟

一. trait定义和作用

Scala没有Java中接口的概念,所以Scala的trait就类比Java中的接口。

Scala的特质定义如下

trait identified {
属性; 方法 }

trait是关键字,identified 表示一个合法的标记。

作用: 封装成员和方法,供其他类来实现。它可以实现多继承!

二. 实现单个特质

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

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
}

结果如图:

屏幕截图 2025-11-20 093642.png

三. 实现多个特质

格式: 类名 extends 特质1 with 特质2 with 特质3  其中多个特质的顺序可以交换。

trait Tall {
  var height: Int = 180
  var name: String // 抽象属性
  def say(): Unit = { println(s"${name}") }
  def cry(): Unit // 抽象方法
}

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

// 子类一定要实现所有的父类中的抽象成员(属性,方法)
class Girl extends Tall with Eye {
  var name: String = "女士"
  def cry(): Unit = {
    println("cry .....")
  }
  var age: Int = 18
}

def main(args: Array[String]): Unit = {
  val girl1 = new Girl()
  girl1.say()
  println(girl1.beautifulEye)
  println(girl1.height)
}

结果如图:

屏幕截图 2025-11-20 092731.png