O'Reilly logo

Programmieren mit Scala by Alex Payne, Dean Wampler

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Varianz bei Vererbung

Ein wichtiger Unterschied zwischen den Generics in Java und Scala besteht in der Art und Weise, wie sich die Varianz auf die Vererbung auswirkt. Wenn beispielsweise eine Methode ein Argument vom Typ List[AnyRef] hat, können Sie dann einen Wert des Typs List[String] übergeben? Mit anderen Worten: Soll ein List[String] als ein Subtyp von List[AnyRef] betrachtet werden? Wenn ja, wird diese Art der Varianz als Kovarianz bezeichnet, denn die Supertyp-Subtyp-Beziehung des Containers (dem parametrisierten Typ) »weist in dieselbe Richtung« wie die Beziehung zwischen den Typparametern. In anderen Situationen, die wir gleich beschreiben werden, kann aber auch ein kontravariantes oder invariantes Verhalten sinnvoll sein.

In Scala ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required