和Java一样,Scala也有泛型。刚看到泛型的时候,会发现
List[+T] extends Seq[T]
这样的语法。这里的加号指的是:
协变covariant C[T’]是 C[T] 的子类 [+T]
逆变contravariant C[T] 是 C[T’]的子类 [-T]
不变invariant C[T] 和 C[T’]无关 [T]
有了这个,在Scala里写
val l:List[Number] = new List[Int]
是合理的。Java里貌似没有对应的结果。