ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

scala之特质trait

2021-08-13 14:33:09  阅读:172  来源: 互联网

标签:特质 log scala trait Unit msg def


 

特质trait在java中叫做接口, 但是功能要比java强大, 使用with连接可以实现类的多继承

package cn.qianfeng

object demo_trait {     // 特质在java中叫做接口, 但是比java中接口更加强大
    def main(args: Array[String]): Unit = {
        val clog = new consoleLog
        val flog = new fileLog
        val slog = new socertLog
        clog.log("五月来了,六月还元吗?")
        flog.log("安全文件有两个")
        slog.log("socket 文件也有两份")

    }
}

trait log{  // 定义一个特质
    def log(msg:String)  // 定义抽象方法
    def show: Unit ={    // 定义非抽象方法
        println("trait 中的非抽象方法")
    }
}

trait secrety{  // 定义一个特质
    def valdate: Unit ={      // 定义非抽象方法
        println("安全你我他, 快乐靠大家!!")
    }
    def log(msg:String): Unit ={   //定义非抽象方法
        println("secret--->" + msg)
    }
}

class consoleLog extends log{  // 继承log特质
    override def log(msg: String): Unit = {  // 子类必须重写父类中的抽象方法
        println("console--->" + msg)
    }

}

class fileLog extends log{  // 继承log特质
    override def log(msg: String): Unit = {
        println("file--->"+msg)
    }
}

class socertLog extends log with secrety{}  // 继承log和secertg两个特质,secrety中定义了非抽象方法log,不需要再重写log中的Log方法

 

标签:特质,log,scala,trait,Unit,msg,def
来源: https://www.cnblogs.com/kongzhagen/p/15137223.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有