What are traits? For those coming from a Java background, it's tempting to see them as interfaces, but in reality they are something different. Trait constructs may look similar but are of a different nature to interfaces in Java. The meaning of the word trait is: a distinguishing quality or characteristic, typically one belonging to a person. One of the purposes of traits is the same. What if you want to add a particular characteristic to our hierarchy of classes or a single class? You can do this by extending or mixing in a trait. It's easier to say that we mix-in traits rather than extend from them. How are these two different? We'll talk about this as we go along but for now, let's take a look at how we define a trait in Scala: ...

Get Learning Scala Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.