object Test { abstract class A { Console.print("A"); lazy val x: Int; val y: Int = {Console.print("y"); x + 1} } class B extends A { Console.print("B"); lazy val z = 0; lazy val x = 4 + z } def main (args: Array[String]): Unit = { Console.print((new B).y); println() } }