我有一个我无法修改源的类:
class Foo {
def bar() = println("bar")
}
还有一个我想在运行时混入其中的特征
trait Zee { this: Foo =>
abstract override def bar() = {
println("before bar")
super.bar()
}
}
这是扔那个bar is not a member of Object with ScalaObject
我究竟做错了什么?是否可以在不修改源代码的情况下实现这一Foo
目标?
最终的客户端代码需要如下所示:
val foo = new Foo with Zee
foo.bar() // should print 'before bar' and then 'bar'