Code
scala
trait Logger {
def log(msg: String): Unit = println(s"[LOG] $msg")
}
trait TimestampedLogger extends Logger {
override def log(msg: String): Unit =
super.log(s"${System.currentTimeMillis()} - $msg")
}
class Service extends TimestampedLogger {
def run(): Unit = log("Service started")
}
// Linearization: Service -> TimestampedLogger -> Logger
new Service().run()
// [LOG] 1700000000000 - Service started