trait基本使用

48 阅读1分钟

(一)trait定义和作用

定义:trait identified {属性; 方法}

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

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

(二)实现单个特质

object ddd58 {
    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()
      println(girl1.beautifulEye)
      println(girl1.height)
    }
}

(三)实现多个特质

object ddd59 {
  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)
  }