When using generics Scala doesn’t support covariance. The following code doesn’t compile.
object HelloSample { def main(args:Array[String]):Unit = { val a:MyStack[SportCar] = new MyStack[SportCar]; val b:MyStack[Car] = a; } } class Car class SportCar extends Car class MyStack[T]
The following video clip shows the compilation error we get while trying to compile this code and explains it.