有人可以解释一下原因:
abstract class Super(var title: String)
class Sub(title: String) extends Super(title) {
def test = println(title)
}
val s = new Sub("a")
s.test
s.title = "b"
s.test
打印:
a
a
而不是:
a
b
答案 0 :(得分:2)
这很容易。您只需引用构造函数param,而不是继承的变量。您可以重命名构造函数参数,也可以使用this.
前缀
class Sub(titleP: String) extends Super(titleP) {
def test = println(title)
}