Generics Contravariance in Scala PRO

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.

Share:

The Visitor Design Pattern

The Visitor Design Pattern

The visitor design pattern allows us to add operations to objects that already exist without modifying their classes and without extending them.

The Beauty of Code

Coding is Art! Developing Code That Works is Simple. Develop Code with Style is a Challenge!

Update cookies preferences