我认为唯一的解决方法是在特征中定义一些类似于构造函数params的抽象方法,并在具体实现中覆盖它们:
trait A {
def message:String
}
val a = new A {
override val message = "Hello!"
}
Run Code Online (Sandbox Code Playgroud)
在scala中,类/特征的整个主体是构造函数.所以基本上你使用相同的方法:
class B (override val message:String) extends A
val b = new B("Hello!")
Run Code Online (Sandbox Code Playgroud)