scala学习(十五)——trait运行时装配

来源:互联网 发布:淘宝金牌卖家有假货吗 编辑:程序博客网 时间:2024/05/01 00:48

scala学习(十五)——trait运行时装配

能够在运行是装配类使用那个trait,有点类似类在执行期间根据不同的接口执行不同的操作。
下面是一个例子:
//带有特质的对象,能够在运行的时候自动的进行装配trait Logger{    def log(msg:String){    }}class Dog extends Logger{    def run = {        log("xxx")    }}trait newLogger extends Logger{    override def log(msg:String){        println("newLogger   " + msg)    }}trait ddLogger extends Logger{    override def log(msg:String){        println("ddLogger   " + msg)    }}object main{    def main(args:Array[String]){        var d = new Dog        d.run        //下面对Logger进行替换,能够选择需要使用的接口        var d2 = new Dog with newLogger        d2.run        var d3 = new Dog with ddLogger        d3.run        println("==========")        //在后面的会被执行        var d4 = new Dog with newLogger with ddLogger        d4.run        var d5 = new Dog with ddLogger with newLogger        d5.run        }}

运行结果:


0 0
原创粉丝点击