What are Scala Traits?

Traits are abstract classes that are meant to be added to some other class. A trait adds some methods or fields to an unknown parent class. It encapsulates field and method definitions which can be reused by adding them into classes. Unlike class inheritance in which each class must inherit from just one superclass whereas a class can mix in any number of traits. A trait defines the object types by specifying the signature of the supported methods.

Wish to get certified in Scala! Learn Scala from top Scala experts and excel in your career with Intellipaat’s Scala certification!

Watch this Apache-Spark-Scala video

Scala Traits


trait IntegerSet {
def incl(x: Int): IntSet
def contains(x: Int): Boolean
class EmptySet extends IntegerSet {
def contains(x: Int): Boolean = false
def incl(x: Int): IntSet = new NonEmptySet(x, new EmptySet, new EmptySet)

One trait can also extend another trait like as follows:

Become a professional Apache Spark with this complete Scala and Apache spark Training Course!


trait Almirah {
def canOpen(p: Person) : Boolean =
return true
def canPass(p: Person) : Boolean =
return true
trait Locked extends Almirah {
override def canOpen(p: Person): Boolean = {
if (!p.hasItem(theKey)) {
println("You don't have the Key")
return false
println("Using key...")
return super.canOpen(p)

Recommended Videos

Leave a Reply

Your email address will not be published. Required fields are marked *