Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

No, Scala does not lack the transitive property of covariance. The transitive property of covariance states that if C is a subtype of B, and B is a subtype of A, then C is a subtype of A. This property is present in Scala's type system. For example:

class Animal
class Mamal extends Animal
class Dog extends Mamal

val mamal: Mamal = new Dog
val animal: Animal = mamal

In this example, Dog is a subtype of Mamal, and Mamal is a subtype of Animal. Therefore, Dog is also a subtype of Animal, and the third line of code is valid. This demonstrates the transitive property of covariance in Scala.