Scala_特质trait,实现类继承单个或多个特质、单例对象继承特质、特质的抽象方法

object demo9{
    //创建特质:
    trait Logger{
        //特质中定义抽象方法
        def log(msg:String)
    }
    //实现类继承单个特质
    class ConsoleLogger extends Logger{
        override def log(msg:String) = println("Console output:" + msg)
    }
    
    //创建两个特质:
    trait MessageSender{
        def send(msg:String)
    }
    trait MessageReceiver{
        def receive()
    }
    //实现类继承两个特质:
    class MessageWorker extends MessageSender with MessageReceiver{
        override def send(msg:String) = println("sender message:"+msg)
        override def receive() = println("receice that message")
    }

    //单例对象继承特质
    object Loggerobject extends Logger{
        override def log(msg:String) = println(s"hello ${msg},using single object")
    }
    def main(args:Array[String]){
        //实现类的对象调用方法
        val logger = new ConsoleLogger
        logger.log("hello scala,using single trait")

        val messageWorker = new MessageWorker
        messageWorker.send("hello Scala!")
        messageWorker.receive()

        //单例对象调用方法
        Loggerobject.log("spark")
    }
}

输出结果:

Console output:hello scala,using single trait
sender message:hello Scala!
receice that message
hello spark,using single object

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值