Traits
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:
trait Socialize { //people who socialise, greets. def greet(name: String) = "Hello " + name }
Look at it this way. One of the qualities of people who tend to socialize well is that they greet you wholeheartedly when they meet you. In programming...