特质

23 阅读1分钟

1.特质

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

2.class 拥有两个父类

package Level02

  object Class09 {

    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)
    }
}

3.子类一定要实现所有的父类中的抽象成员(属性,方法)

package level02 {

  object Class10 {

    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)
    }
  }
}