类的初始化顺序1

当实例化父类或特质时,父类构造器的代码在子类的构造器实例化之前,类定义之后执行。

trait A {  
  val audience: String 
  println("Hello " + audience)
}

class BMember(a: String = "World") extends A {  
  val audience = a
  println("I repeat: Hello " + audience)
}

class BConstructor(val audience: String = "World") extends A{
  println("I repeat: Hello " + audience)
}

new BMember("Readers")

new BConstructor("Readers")

输出结果:

Hello null
I repeat: Hello Readers
Hello Readers
I repeat: Hello Readers

此题翻译自Location,Location,Location

你可能感兴趣的:(类的初始化顺序1)