Traits

  • Similar to interfaces in other languages

  • Group of method signatures

  • Default implementations

  • Orphan rule: you can't implement external trait on external types

  • Generic support

  • Traits as parameters

  • Trait bound

  • Blanket implementation