继承变量不喜欢新值

时间:2013-09-07 18:04:49

标签: scala variables inheritance

有人可以解释一下原因:

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

1 个答案:

答案 0 :(得分:2)

这很容易。您只需引用构造函数param,而不是继承的变量。您可以重命名构造函数参数,也可以使用this.前缀

引用var
class Sub(titleP: String) extends Super(titleP) {
    def test = println(title)
}