¿Puedo agregar a una colección genérica de valores de tipo A de tipo B, que extiende A, sin ninguna sintaxis especial?

public class Stack<E> {
    public Stack () {....}
    public void push (E e) {....}
    public E pop () {....}
    public boolean isEmpty(){....}
}

public void pushAll (Collection<E> src) {
    for (E e: src){
        push(e)
    }
}

No entiendo cuál será el problema si escribo

Stack<number> numberStack = new Stack<Number>();
Collection<Integer> integers=...
numberStack.pushAll(integers);

Integer extiende Number, por lo que puedo agregar una colección de enteros anumberStack. Pero me dijeron que esta es una compilación de errores. ¿Por qué?

Respuestas a la pregunta(3)

Su respuesta a la pregunta