私は次のことで混乱しています:
class A(val s: String) {
def supershow {
println(s)
}
}
class B(override val s: String) extends A("why don't I see this?"){
def show {
println(s)
}
def showSuper {
super.supershow
}
}
object A extends App {
val b = new B("mystring")
b.show
b.showSuper
}
私は期待していました:
mystring
why don't I see this?
しかし、私は得る:
mystring
mystring
Java では、スーパー クラスの変数をオーバーライドまたは「シャドウ」する場合、スーパー クラスには独自の変数があります。しかし、ここでは、親を別の文字列で明示的に初期化していると思いますが、親はサブクラスと同じ値に設定されますか?