多继承

16 阅读1分钟
package level02

import java.io.FileWriter
import scala.util.Using

object class11 {
  // trait 用抽象val定义文件名,由子类实现
  trait FileLogger {
    protected val filename: String

    def writeLog(msg: String): Unit = {
      // Using自动关闭资源,处理IO异常
      Using(new FileWriter(filename, true)) { writer =>
        writer.write(msg)
      }.getOrElse(throw new Exception("写日志失败"))
    }
  }

  class MyFileLogger extends FileLogger {
    override val filename: String = "1126.log"
  }

  def main(args: Array[String]): Unit = {
    val fileLogger = new MyFileLogger()
    fileLogger.writeLog("今天上scala课程")
  }
}