package com.wy.scala.oop
/**
* @author Lewis
*/
//AOP
trait Action{
def doAction
}
trait TBeforeAfter extends Action {
abstract override def doAction{
println("AAAAAAAAAa")
super.doAction
println("BBBBBBBBB")
}
}
class Work extends Action{
override def doAction = println("Working...")
}
class Human{
println("Human")
}
trait TTeacher extends Human{
println("TTeacher")
def teach
}
trait PianoPlayer extends Human{
println("PianoPlayer")
def playPiano = {println("I,m training students.")}
}
//多重继承
class PianoTeacher extends Human with TTeacher with PianoPlayer{
override def teach = {println("I'm training students . ")}
}
object UseTrait extends App{
//从左到右的执行顺序
val work = new Work with TBeforeAfter
work.doAction
}
Scala深入浅出实战经典:15,Scala多重继承、多重继承构造器执行顺序及AOP实现
最新推荐文章于 2023-05-21 19:13:43 发布