trait field 的初始化
scala> trait Hello { val name:String ; println(name.toString)}
defined trait Hello
scala> class Person
defined class Person
scala>
scala> val p3 = new{ val name="dog" } with Person with Hello
dog
p3: Person with Hello = $anon$1@4da1d61b
另一种提前定义
scala> class Person extends { val name:String="hello"} with Hello
defined class Person
scala> val p = new Person
hello
p: Person = Person@669a46ae
还有一种处理方式 定义为 lazy
scala> trait Hello { lazy val name:String=null ;println(name.toString)}
defined trait Hello
scala> class Person extends Hello {
| override lazy val name="hello" }
defined class Person
scala> var p = new Person
hello
p: Person = Person@1eb58871