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. Watch this Apache-Spark-Scala video e.g. 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: e.g. 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) } } Our Big Data Courses Duration and Fees Program Name Start Date Fees Big Data Hadoop Course in Bangalore Cohort starts on 18th Jan 2025 ₹22,743 Big Data Hadoop Training in Hyderabad Cohort starts on 25th Jan 2025 ₹22,743 Big Data Hadoop Training in Pune Cohort starts on 18th Jan 2025 ₹22,743