1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
object Final {
class X(final var x: Int) { }
def f = new X(0).x += 1
}
class A {
var x = 1
def y0 = x
def y1 = this.x
def y2 = (this: A).x
}
class B extends A {
override def x = 2
def z = super.x
}
object Test {
def main(args: Array[String]): Unit = {
Final.f
val a = new B
println((a.x, a.y0, a.y1, a.y2, a.z))
val a0: A = a
println((a0.x, a0.y0, a0.y1, a0.y2))
a.x = 1001
println((a.x, a.y0, a.y1, a.y2, a.z))
println((a0.x, a0.y0, a0.y1, a0.y2))
val d = new D
println(d.w)
d.ten
println(d.w)
}
}
class C { var w = 1 ; def ten = this.w = 10 }
class D extends C { override var w = 2 }
|