我想在构造函数中覆盖 Trait 中的一个可变变量。但它会提示“在 Int 类型的特征 A 中覆盖变量 a;变量 a 不能覆盖可变变量”。为什么scala不允许我这样做?对此有什么最佳实践吗?谢谢
trait A{
var a:Int = _
}
class B(override var a:Int) extends A
最佳答案
你不能覆盖它(因为我现在不知道的原因,除了,无论如何都可以修改变量,所以为什么要覆盖它们),但你可以不初始化声明的变量并将后者委托(delegate)给 B
:
trait A {
var a: Int
}
class B(var a: Int) extends A
关于scala - 如何在 scala 中覆盖 Trait 中的可变变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16413986/