Javaでは全てのクラスがObject型のサブクラスだが、
ScalaではAnyが最上位のクラスで、次にIntなどの値型はAnyValクラス、参照型はAnyRefクラスのサブクラスになる。
図にすると、
引用元:
Learning Scala part eight – Scala’s type hierarchy and object equality
といった流れ。
型パラメータの前につくプラス+とかマイナスーは、変位指定という。
プラスは共変といい、javaでいうextends。
マイナスは反変といい、javaでいうsuper。
共変は引数に指定できず、反変は返り値に指定できない。
理由は下記リンク。