trait 构造机制
通过下面例子 看构造 执行顺序
scala> class Person { println("--person--")}
defined class Person
scala> trait Logger { println("--Logger--")}
defined trait Logger
scala> trait ALogger extends Logger { println("--ALogger--")}
defined trait ALogger
scala> trait BLogger extends Logger { println("--BLogger--")}
defined trait BLogger
scala> class Student extends Person with ALogger with BLogger{
| println(" --student--")
| }
defined class Student
scala> var s = new Student
--person--
--Logger--
--ALogger--
--BLogger--
--student--
s: Student = Student@411e5672
注意 with 后面的 trait 的顺序
scala> class Student2 extends Person with BLogger with ALogger {
| println(" --student--") }
defined class Student2
scala> var s2 = new Student2
--person--
--Logger--
--BLogger--
--ALogger--
--student--
s2: Student2 = Student2@ec50502