具体属性和抽象属性

26 阅读1分钟

trait:实现多继承 1.具体属性,抽象属性 2.具体方法,抽象方法

object day1117 {

  trait BeautifulEye {
    val eye:String = "眼睛漂亮"
    val name:String//抽象属性
  }

  trait Tall {
    val height: String = "大高个"
    def run():Unit = {
      println("run....")
    }
    def jump():Unit
  }
  //继承  with
  class Child extends BeautifulEye with Tall{
    val name: String = "小花"
    def jump():Unit = {
      println(s"${name}.jump....")
    }
  }
  def main(args:Array[String]):Unit = {
    val child = new Child
    println(child.eye)
    println(child.height)
    child.run()
    child.jump()
  }
}

1.trait中可有抽象,也可有具体 2.它的子类必须实现抽象的(属性,方法)