依赖注入:
trait Config {
load
val text: String
def load: Unit
}
trait InMemoryConfig extends Config {
lazy val text = "Hello"
def load = println("load: " + text)
}
trait Context
trait MyContext extends Context {
this: Config =>
def welcome = this.text
}
object Env extends MyContext with InMemoryConfig
println(Env.text)
结果:
load: Hello
Hello
多继承:
class Person
trait TTeacher extends Person {
def teach = {println(" TTeacher")}
}
trait TPianoPlayer extends Person {
def playPiano = {println("I’m playing piano. ")} //实方法,已实现
}
object PianoplayingTeacher extends Person with TTeacher with TPianoPlayer
PianoplayingTeacher.teach
PianoplayingTeacher.playPiano
结果:
TTeacher
I’m playing piano.
trait Config {
load
val text: String
def load: Unit
}
trait InMemoryConfig extends Config {
lazy val text = "Hello"
def load = println("load: " + text)
}
trait Context
trait MyContext extends Context {
this: Config =>
def welcome = this.text
}
object Env extends MyContext with InMemoryConfig
println(Env.text)
结果:
load: Hello
Hello
多继承:
class Person
trait TTeacher extends Person {
def teach = {println(" TTeacher")}
}
trait TPianoPlayer extends Person {
def playPiano = {println("I’m playing piano. ")} //实方法,已实现
}
object PianoplayingTeacher extends Person with TTeacher with TPianoPlayer
PianoplayingTeacher.teach
PianoplayingTeacher.playPiano
结果:
TTeacher
I’m playing piano.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29754888/viewspace-2130387/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29754888/viewspace-2130387/