DevilKing's blog

冷灯看剑,剑上几分功名?炉香无需计苍生,纵一穿烟逝,万丈云埋,孤阳还照古陵

0%

scala trait

原文链接

trait并不是interface,而是一个功能模块,允许用户把这个模块插入到class中

trait本身也可以继承,方法也可以直接在trait里实现

1
2
3
4
5
6
7
8
9
scala> val service2 = new ServiceImportante("dos") with StdoutLogging {
| override def work(i: Int): Int = {
| info(s"Starting work: i = $i")
| val result = super.work(i)
| info(s"Ending work: i = $i, result = $result")
| result
| }
| }
service2: ServiceImportante with StdoutLogging = $anon$1@674fee6d

当然也可以重复使用ServiceImportante with StdoutLogging,定义一个新的class