traits
Interface like traits are fields and behaviors that you add to classes
Better than Java interfaces b/c offers value parameters and methods
trait Car {
def two: Int = 1 * 2
val brand: String
}
trait Shiny {
val shineRefraction: Int
}Extending Traits
class BMW extends Car {
val brand = "BMW"
}One class can extend several traits using the with keyword:
class BMW extends Car with Shiny {
val brand = "BMW"
val shineRefraction = 12
}-better than abstract classes cuz can extend multiple traits
can't have abstract class constructors, or import in Java as easily
Last updated