美文网首页
Scala多继承以及AOP

Scala多继承以及AOP

作者: 田真的架构人生 | 来源:发表于2017-08-01 21:21 被阅读0次
class Human{
  println("Human")
}

trait TTeacher extends Human { 
  println("TTeacher")
  def teach 
} 

trait PianoPlayer extends Human { 
  println("PianoPlayer")
  def playPiano = {println("I am playing piano. ")} 
} 

class PianoTeacher extends Human with TTeacher with PianoPlayer { //构造PianoTeacher实例时,按照从左至右的顺序依次完成,仅构造一次
    override def teach = {println("I am training students. ")} 
}

object UseTrait extends App{
   val t1 = new PianoTeacher
   t1.playPiano 
   t1.teach 
}

结果:
Human
TTeacher
PianoPlayer
I am playing piano.
I am training students.

//AOP
trait Action { 
    def doAction 
}

trait TBeforeAfter extends Action { 
    abstract override def doAction { 
        println("Initialization") 
        super.doAction //因为调用了父类的抽象方法,所以本方法也是抽象的。super.doAction最终会在子类Work中实现,有点类似于模板方法设计模式。
        println("Destroyed") 
    } 
}

class Work extends Action{
     override def doAction = println("Working...")
}

object UseTrait extends App{
    val work = new Work with TBeforeAfter
    work.doAction
}

结果:
Initialization
Working...
Destroyed

相关文章

  • Scala多继承以及AOP

    结果:HumanTTeacherPianoPlayerI am playing piano.I am traini...

  • Scala 多继承,构造器执行顺序,AOP实现

    1、特质Worker与特质Teacher中具有相同方法work,其中Teacher.work是具体方法,而Work...

  • 第24课:关于继承和Trait进阶

    Any类整个Scala继承的根,在Scala的运行环境中,Scala的所有类都直接或者间接继承了Any,以下是An...

  • 类结构

    Scala类结构 scala和python类似,scala中所有值都是继承自Any,包括函数。所以在scala之中...

  • Scala 之旅(TOUR OF SCALA)——统一类型(UN

    在 Scala 中,所有的值都有类型,包括数值和函数。下面这个图表说明了类型继承结构的子集。 Scala 类型继承...

  • 多继承以及MRO顺序

    使用父类名称.方法的方式调用父类方法,会导致父类的父类方法被多次调用 如果使用super().方法的方式,,,,类...

  • 多继承以及MRO顺序

    1. 单独调用父类的方法 运行结果: 2. 多继承中super调用有所父类的被重写的方法 运行结果: 注意: 以上...

  • 多继承以及MRO顺序

    1、单独调用父类的方法 2、多继承中super调用所有父类的被重写方法 3、单继承中super() 总结 supe...

  • The IoC Container 5. Aspect Orie

    Spring AOP各种材料讲解的非常多,本章用来总结个人对Spring AOP的一点浅显理解以及用来Spring...

  • js之继承

    文章主讲 JS 继承,包括原型链继承、构造函数继承、组合继承、寄生组合继承、原型式继承、 ES6 继承,以及 多继...

网友评论

      本文标题:Scala多继承以及AOP

      本文链接:https://www.haomeiwen.com/subject/qqeslxtx.html