为实例 混入 trait
创建对象时 使用 with 混入
scala> trait Logger {
| def log(log:String){}
| }
defined trait Logger
scala> trait HelloLogger extends Logger {
| override def log(log:String){ println("---hello---"+log)}
| }
defined trait HelloLogger
scala>
scala> trait HiLogger extends Logger {
| override def log(log:String){println("---hi---"+log)}
| }
defined trait HiLogger
scala>
scala> class Person extends Logger{
| def sayHello(name:String){ log(name)}
| }
defined class Person
scala>
scala> val p1 = new Person
p1: Person = Person@74106c6c
scala> p1.sayHello("hello")
scala> val p2 = new Person with HelloLogger
p2: Person with HelloLogger = $anon$1@15d1c3ac
scala> p2.sayHello("hello")
---hello---hello
scala> val p3 = new Person with HiLogger
p3: Person with HiLogger = $anon$1@6a6974b9
scala> p3.sayHello("hello")
---hi---hello
----------------------------------