Scala Traits
Defining and using traits in Scala
Trait Definition
trait Greeting { # define trait
def greet(): String # abstract method
}
Implementing Traits
class Person extends Greeting { # extend trait
def greet(): String = "Hello" # implement method
}
Trait with Implementation
trait Logger {
def log(msg: String): Unit = { # concrete method
println(s"Log: $msg")
}
}
Multiple Traits
class Person extends Greeting with Logger { # mix in multiple traits
def greet(): String = {
log("Greeting")
"Hello"
}
}
Trait with Constructor
trait Timestamped {
val timestamp = System.currentTimeMillis() # trait field
}