trait基本使用

6 阅读1分钟

1.作用

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

2.实现多个特质

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


object Class18 {

  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.特质成员的处理方式

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

        println(girl1.beautifulEye)
        println(girl1.height)
    }
  }