Scala code:
trait Logger {
def log(msg: String)
}
trait TimeLogger extends Logger {
def log(msg: String) = super.log(new Date + ": " + msg)
}
class MyApp extends TimeLogger {
override def log(msg: String): Unit = println(msg)
log("Hello")
}
new MyApp()
When I compile it, it reports error:
Error:(12, 34) method log in trait Logger is accessed from super. It may not be abstract unless it is overridden by a member declared `abstract' and `override'
def log(msg: String) = super.log(new Date + ": " + msg)
^
I'm not quite understand it, why should I declared an abstract
and override
log
method? How to fix it?