trait基本使用

46 阅读1分钟

一.trait定义和作用

  • 1.trait是关键字,identified 表示一个合法的标记。
  • 2.作用:封装成员和方法,供其他类来实现。它可以实现多继承!
package level02

/*
* 特质: trait
* 它用来实现多继承
*/
object Class20 {
 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 girl = new Girl()
   girl.beautifulEye
   girl.height
 }
}

二.实现多个特质

1.定义两个特质,使用一个类来实现他们 2.子类一定要实现所有的父类中的抽象成员(属性、方法)

package level02
object Class21 {
  trait Tall {
    var height: Int = 180
    var name: String // 抽象属性
    def say(): Unit = println(s"hi,${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 girl = new Girl()
    girl.say()
    println(girl.beautifulEye)
    println(girl.height)
  }
}