为什么我们可以使用2.12中2.11编译的特征?

时间:2016-08-25 07:52:03

标签: scala traits

在理解this answer的同时,我编写了自己的示例,该示例使用了scala-library版本2.11.4的特征:

trait Trace {
  def id(): Int
  def concrete(i : Int) = println(i)
}
程序中的

使用版本2.12.0-M5

object App {
  def main(args: Array[String]) = {
    println("st")
    val t = new TraceImpl
    println(t.id())
    t.concrete(10)
  }

  class TraceImpl extends Trace{
    override def id(): Int = 1
  }
}

我预计会在运行时抛出一些异常,但程序运行正常并打印:

st
1
10

为什么呢?从版本2.12.x开始,应该更改traits的运行时实现?

0 个答案:

没有答案