Traits and Composition
Mixing Traits
Combine two traits into one class.
Mixing Traits
MultipleTraits.scala
trait Named {
def label: String = "item"
}
trait Counted {
def count: Int = 1
}
class Box extends Named with Counted {
override def toString: String = "[box]"
}
object Main {
def main(args: Array[String]): Unit = {
val extra =
val box = new Box()
val total = box.count + extra
println("label=" + box.label)
println("count=" + box.count)
println("total=" + total)
}
}
trait Named {
def label: String = "item"
}
trait Counted {
def count: Int = 1
}
class Box extends Named with Counted {
override def toString: String = "[box]"
}
object Main {
def main(args: Array[String]): Unit = {
val extra =
val box = new Box()
val total = box.count + extra
println("label=" + box.label)
println("count=" + box.count)
println("total=" + total)
}
}
trait Named {
def label: String = "item"
}
trait Counted {
def count: Int = 1
}
class Box extends Named with Counted {
override def toString: String = "[box]"
}
object Main {
def main(args: Array[String]): Unit = {
val extra =
val box = new Box()
val total = box.count + extra
println("label=" + box.label)
println("count=" + box.count)
println("total=" + total)
}
}
multiple-traits
A class can mix in several traits with `extends` and `with`. It then offers the methods from every trait it combines.