- Traits are like interfaces in java.
- It can’t be initiated like abstract classes.
- A class can extend multiple traits unlike classes inheritence.
trait Driveable:
def moveForward(speed: Int): Unit
def stop: Unit
def leftTurn(speed: Int): Unit
...
class Car extends Driveable:
// implement all those methods
override def moveForward(speed: Int): Unit =
this.x += speed
...