第11课:Scala面向接口彻底实战和Spark源码鉴赏

1、通过关键字extends来继承类和接口,如果已经有extends,则通过with来实现多重继承,但是Scala中类和抽象类不支持多重继承,如果存在多重继承,则从右往左进行;
2、Scala中的抽象属性:是未被实例化的属性,如:val name: String,在子类中直接给他赋值;
3、Scala中类的实例对象也可以混入接口,以扩展当前对象的实例功能;

混入接口代码:

trait Logger {
  def log(message: String) {
    println("Logger:" + message)
  }
}

trait RichLogger extends Logger {
  override def log(message: String) {
    println("RichLogger:" + message)
  }
}

class Loggin(name: String) extends Logger {
  def login {
    println("name:" + name)
    log(name)
  }
}

object HelloTraitOps {
  def main(args: Array[String]): Unit = {

    //类实例化时混入接口
    val loggin = new Loggin("Spark") with RichLogger
    loggin.login  //这里就会调用RichLogger中覆盖的Log方法
  }
}

备注:

资料来源于:DT_大数据梦工厂(Spark"蘑菇云"行动

更多私密内容,请关注微信公众号:DT_Spark

如果您对大数据Spark感兴趣,可以免费听由王家林老师每天晚上2000开设的Spark永久免费公开课,地址YY房间号:68917580


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值