继承

15 阅读1分钟
object class18 { 
trait FileLogger { 
println("fileLogger") val filename: String 
// 延迟初始化writer,确保filename已被子类初始化 lazy 
val writer = new FileWriter(filename) 
def writeLog(msg: String): Unit = {
writer.write(msg) writer.close()
// 注意:每次写入后关闭,多次写入会报错,建议优化 
}
} 
class MyWriter extends FileLogger { 
println("MyWriter") override val filename: String = 
"test.log" 
} 
def main(args: Array[String]): Unit = { 
val log = new MyWriter() log.writeLog("测试内容")
}
}