0

有人可以解释一下为什么:

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

?

4

1 回答 1

2

这简单。您只是指构造函数参数,而不是继承的变量。您可以重命名构造函数参数,也可以使用this.前缀引用 var

class Sub(titleP: String) extends Super(titleP) {
    def test = println(title)
}
于 2013-09-07T18:14:26.167 回答