SIP 25将允许特征具有构造函数。在实施之前,什么是一个好的解决方法?
答案 0 :(得分:7)
我认为唯一的解决方法是在特征中定义一些类似于构造函数params的抽象方法,并在具体实现中覆盖它们:
trait A {
def message:String
}
val a = new A {
override val message = "Hello!"
}
在scala中,类/特征的整个主体是构造函数。所以基本上你使用相同的方法:
class B (override val message:String) extends A
val b = new B("Hello!")