Ještě intuitivnější vysvětlení je s kolekcemi:

List<? extends A> l;
if (externifunkce()) {
   l = new ArrayList<B>();
} else {
   l = new ArrayList<C>();
  l.add(new C());
}
//a toto nesmi byt povoleno, protoze l muze byt  List<C> !
l.add( new B() );

Kamil Podlešák

Odpovedet emailem