运行以下代码:
class Parent {
val value = {
println("Setting value in parent")
"ParentVal"
}
println(s"Parent value is ${value}")
}
class Child extends Parent {
override val value = {
println("Setting value in child")
"ChildVal"
}
println(s"Child value is ${value}")
}
new Child
产生这个输出:
Setting value in parent
Parent value is null
Setting value in child
Child value is ChildVal
因此,与父值分配关联的代码运行,但是该值并未真正在父级分配。之后子代码运行并按预期分配值。
有人可以在较低级别解释这里的事件链吗?