scala的特质(自用)

package xy
//trait:特质(美丽,智慧,耐心......)
//作用:(1)当接口用实现多继承(2)当抽象类,定义类标准

//格式:trait 名字 { 属性,方法 }

trait BackgroundPlayer{
//abstract class BackgroundPlayer (){
  //抽象属性
  val cd:String
  //抽象方法
  def play
  val color = "red"//具体属性
  def pause():Unit={//具体方法

  }
}

//播放视频
trait VideoPlayer{
  def playVideo
}
abstract class Screen

class Mp3 extends BackgroundPlayer {
  val cd = "周杰伦"

  def play(): Unit = {
    println(s"Mp3 播放 ${cd}")
  }
}

class Mp4 extends Screen with BackgroundPlayer with VideoPlayer{
  val cd = "王杰"
  def play():Unit={
    println(" Mp3 播放器")
  }
  def playVideo():Unit={
    println(" Mp4 播放器 - 视频")
  }
}
//子类继承特质,必须要实现所有的抽象的成员
object T8 {
  def main(args: Array[String]): Unit = {
    //trait 不能直接new
    //new BackgroundPlayer()
    val m2 = new Mp4()
    m2.play()
  }

}

仅自用

你可能感兴趣的:(scala)