9.3.2 最简单的特质: 当做接口使用的特质
package com.atguigu.day06
trait Logger {
// 未被实现的方法就是抽象方法, 不需要加abstract关键字
def log(msg: String)
}
子类实现:
class ConsoleLogger extends Logger {
def log(msg: String): Unit = {
println(msg)
}
}
说明:
实现特质方法的时候的, 可以加
override
, 也可以不加如果一个类没有继承任何其他的类, 则使用
extends
来混入特质.否则只能使用with
如果你需要的特质不止一个, 可以通过
with
关键字来添加另外的特质.class ConsoleLogger extends Logger with Serializable with Cloneable { def log(msg: String): Unit = { println(msg) } }
所有的 Java 接口都可以作为 Scala 中的特质使用.
和 Java 一样, Scala 只能继承一个类, 但是可以有任意多个特质