码迷,mamicode.com
首页 > 其他好文 > 详细

SCALA当的trait

时间:2015-04-26 10:40:34      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:

不是特别懂,但感觉和RUBY当中的MIX-IN功能有几分相似,这又扯到了多重继承及JAVA当中的接口虚拟类了。。

package com.hengheng.scala

class UseTrait {

}
trait Logger {
  def log(msg : String) {
    println("log : " + msg)
  }
}
trait ConsoleLogger extends Logger {
  override def log(msg : String) {
    println(msg)
  }
}
class Test extends ConsoleLogger {
  def test() {
    log("Here is Spark!")
  }
}
class ConcreteLogger extends Logger {
  def concreteLog {
    log("It‘s me!")
  }
}
object UseTrait extends App {
  var logger = new ConcreteLogger
  logger.concreteLog
  var test = new Test
  test.test
}

  输出:

log : It‘s me!
Here is Spark!

SCALA当的trait

标签:

原文地址:http://www.cnblogs.com/aguncn/p/4457347.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!