Was nützt es, <zu sagen? erweitert SomeObject> anstelle von <SomeObject>
Also habe ich mir Java-Code angesehen und bin auf Folgendes gestoßen:
List<? extends SomeObject> l;
Grundsätzlich akzeptiert diese Liste alle Objekte, die eine Art von SomeObject sind - SomeObject selbst oder seine Erben. Aber laut Polymophismus können seine Erben auch als SomeObject angezeigt werden, so dass dies auch funktionieren würde:
List<SomeObject> l;
Warum sollte jemand die erste Option verwenden, wenn die zweite klar definiert und praktisch identisch ist?