【scala 特质】Scala的Trait特质使用
来源:互联网 发布:公司网络拓扑图 编辑:程序博客网 时间:2024/04/28 00:51
Trait 的使用场景
- 当做接口
- 带有具体实现的接口
- 带有特质的对象
- 特质从左到右被构造
package DataStructureAndAlgorithm/** * Created by Administrator on 2017/12/23. */// 特质 1// 带有具体实现的接口trait Logger1{ def log(msg: String): Unit ={ println("log: " + msg) }}class Test1 extends Logger1{ def test: Unit ={ log("xxx_1") }}// 特质 2// 当作接口trait Logger2{ def log(msg: String)}// 带有具体实现的接口trait ConsoleLogger2 extends Logger2{ def log(msg: String): Unit ={ println("log: " + msg) }}class Test2 extends ConsoleLogger2{ def test: Unit ={ log("xxx_2") }}// 特质 3trait ConsoleLogger { def log(msg: String): Unit ={ println("save money: " + msg) }}trait MessageLogger extends ConsoleLogger{ override def log(msg: String): Unit ={ println("save money to bank: " + msg) }}abstract class Account{ def save}// 带有特质的对象class MyAccount extends Account with ConsoleLogger{ def save(): Unit ={ log("100") }}object Test13ScalaTrait extends App{ val t = new Test1 t.test val t2 = new Test2 t2.test // 带有特质的对象(一个类可以通过 with 扩展多个特质,特质是从左到右被构造) val m = new MyAccount with MessageLogger m.save}
运行结果:
log: xxx_1log: xxx_2save money to bank: 100Process finished with exit code 0
阅读全文
0 0
- 【scala 特质】Scala的Trait特质使用
- scala-特质(trait)
- Scala之特质Trait
- scala入门-07特质类(trait)的使用
- scala的继承、组合与特质trait
- scala学习之特质(trait)
- scala基础之特质trait
- Java的接口与Scala的trait特质
- Scala中特质trait与抽象类abstract的区别
- 【scala 笔记(8)】 特质 -- trait
- scala 特质
- Scala 特质
- Scala特质
- Scala--特质
- scala-特质
- 【Scala】特质与特质的线性化
- Scala特质的混入顺序
- scala 抽象类(abstract)与特质(trait)
- mysql换行与textarea换行中的坑(textarea与mysql数据不一致)
- Linux如何查看所有的用户和组信息
- 信与信封问题
- 《Java 编程技巧1001条》第401条 排序数组中的不同对象
- 语音识别——离线开源工具(CMU Sphinx)
- 【scala 特质】Scala的Trait特质使用
- Tilemap 使用 Composite Collider 2D
- Cloudera Manager5.12版本更新信息
- 数理统计基础
- Kdapi 快递鸟 物流接口
- ssm+thymeleaf整合
- 给自己立个flag
- SQL语句 where子句 like用法
- 保留字母