云星数据---Scala实战系列(精品版)】:Scala入门教程028-Scala实战源码-Scala 的特质 (接口)04

183 篇文章 0 订阅
64 篇文章 1 订阅

Scala 重写冲突

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

package  scala_learn.demo06_trait

/**
 * Created by liguohua on 2017/3/1.
 */
class O5_TraitDemo {

}

object O5_TraitDemo {
  def main(args: Array[String]) {
    //创建对象
    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....")
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值