特质(trait)

21 阅读1分钟
package level02
/*
特质:trait,用来实现多继承
 */
object Class19 {
  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)
  }
}