DT大数据梦工厂 温故而知新 之15讲

王家林亲授 大数据开发语言《Scala深入浅出实战经典》(1-71讲全部视频、代码、PPT)下载 ,总共有140讲Scala视频!
百度云: http://pan.baidu.com/s/1jGjFpWy
腾讯微云: http://url.cn/TnGbdC

360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2


DT大数据梦工厂 温故而知新 之15讲scala 中的特质的多继承

package TestPractice


/**
 * @author Administrator
 */
object TraitMoreExtendDemo {
  
  def main(args: Array[String]): Unit = {
     //创建对象
    val v1 = new ZZ
    //使用对象
    v1.t1
    println(v1.name + "\t" + v1.age)
  }
  
}


trait AA {
  val name = "aa"
  var age: Int


  def t1: Unit = {
    println("AA   t1....")
  }
}


trait BB {
  val name = "bb"
  var age: Int


  def t1: Unit = {
    println("BB  t1....")
  }
}




class ZZ extends Object with AA with BB {
  //重写冲突成员常量
  override val name = "zz"
  //重写冲突成员变量,必须是抽象的成员变量才能重写,具体的成员变量不能重写
  override var age: Int = 10


  //重写冲突成员方法
  override def t1: Unit = {
    println("ZZ  t1....")
  }
}

总结 :
如果一个类混入的多个特质,切这些特质中有同名方法,造成冲突
那么解决这个方法冲突的办法是重写冲突的方法。(冲突变量也是如此)
抽象方法和抽象字段都必须重写,因此它们中有冲突的成员字段和成员方法
其解决办法也是重写
 

你可能感兴趣的:(scala)