Traits and Composition
Overriding Trait Methods
Replace a trait default with a class-specific value.
Overriding Trait Methods
OverrideMethod.scala
trait Pricing {
def fee: Int = 5
}
class Premium extends Pricing {
override def fee: Int = 20
override def toString: String = "[premium]"
}
object Main {
def main(args: Array[String]): Unit = {
val amount =
val plan = new Premium()
val total = amount + plan.fee
println("fee=" + plan.fee)
println("total=" + total)
}
}
trait Pricing {
def fee: Int = 5
}
class Premium extends Pricing {
override def fee: Int = 20
override def toString: String = "[premium]"
}
object Main {
def main(args: Array[String]): Unit = {
val amount =
val plan = new Premium()
val total = amount + plan.fee
println("fee=" + plan.fee)
println("total=" + total)
}
}
trait Pricing {
def fee: Int = 5
}
class Premium extends Pricing {
override def fee: Int = 20
override def toString: String = "[premium]"
}
object Main {
def main(args: Array[String]): Unit = {
val amount =
val plan = new Premium()
val total = amount + plan.fee
println("fee=" + plan.fee)
println("total=" + total)
}
}
override-method
A class can override a trait's default method with `override` to provide its own result while keeping the same contract.