オブジェクトをコレクションに追加できないのはなぜですか? クラスBはAを拡張したものなので.
import java.util.*;
public class TestGeneric
{
  public static void main(String[] args)
  {
    Collection<? extends A> collection = new ArrayList<A>();
    A a = new B();
    collection.add(a);
  }
  private static class B implements A {
    public int getValue() { return 0; }
  }
}
interface A { int getValue(); }