trait基本使用

3 阅读1分钟

trait定义和作用

Scala没有Java中接口的概念,所以Scala的trait就类比Java中的接口。

特质定义:

trait是关键字,identified 表示一个合法的标记

作用:

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

实现多个特质

格式:类名 extends 特质1 with 特质2 with 特质3  其中多个特质的顺序可以交换。


/*
* 特质:trait
* 作用:类似于抽象类,定义抽象属性,方法
*       让其他的子类去实现
* 特点:可以实现多继承
*
* */
object class17 {

  trait A {
    var name:String;//抽象属性
    def sayA(): Unit = {//具体方法
      println("sayA")
    }
  }

  trait B {
    var age:Int
  }

  class Class1 extends A with B {
    var name:String = "Class1"
    var age:Int = 4
  }


  def main(args: Array[String]): Unit = {
    val class1 = new Class1
    class1.sayA()
    println(class1.name)
    println(class1.age)
  }
}