When overriding a method in a subclass, you may want to call the original implementation as well. This is achieved by prefixing the super keyword to the method name. The developer also has control to qualify the super keyword with a trait type, thus calling the method in the specific trait. We already saw an example of this earlier in the chapter, where we called super[A].hello(). In that example, we had mixins with the same methods; however, the methods themselves did not refer to super, but just defined their own implementations.
Let's see an example here, where we actually refer to the super class when overriding a method:
class MultiplierIdentity { def identity: Int = 1}
Let's now define two traits that respectively ...