Traits and Composition
Implementing a Trait
Fill in an abstract trait method inside a class.
Implementing a Trait
ClassExtendsTrait.scala
trait Shape {
def area: Int
}
class Square(side: Int) extends Shape {
def area: Int = side * side
override def toString: String = "[square]"
}
object Main {
def main(args: Array[String]): Unit = {
val side =
val shape = new Square(side)
println("side=" + side)
println("area=" + shape.area)
}
}
trait Shape {
def area: Int
}
class Square(side: Int) extends Shape {
def area: Int = side * side
override def toString: String = "[square]"
}
object Main {
def main(args: Array[String]): Unit = {
val side =
val shape = new Square(side)
println("side=" + side)
println("area=" + shape.area)
}
}
trait Shape {
def area: Int
}
class Square(side: Int) extends Shape {
def area: Int = side * side
override def toString: String = "[square]"
}
object Main {
def main(args: Array[String]): Unit = {
val side =
val shape = new Square(side)
println("side=" + side)
println("area=" + shape.area)
}
}
class-extends-trait
A trait can declare a method without a body. Each class that extends the trait must supply the missing implementation.