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

それは簡単です。継承された変数ではなく、単にコンストラクタ param を参照します。コンストラクターのパラメーターの名前を変更するか、変数をthis.プレフィックスで参照することができます

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