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
