Почему нельзя вызвать List <Number> без List <Integer>, даже если Integer расширяет Number?

Мне было интересно, почему это не возможно позвонитьList<Number> не сList<Integer> Даже Integer это расширенный класс абстрактного класса Number? Существует логическая ошибка, так как я мог бы вызвать метод с параметром Number также с помощью Integer.

public class Que
{

public void enterNumbers(List<Number> nummern)
{
    for (Number number : nummern)
    {
        System.out.println(number + "\n");
    }
}

public void enterNum(Number num)
{
    System.out.println("This is a number " + num);
}

public static void main(String[] args)
{
    Que que = new Que();

    Integer myInteger = new Integer(7);
    // possible (of course!)
    que.enterNum(myInteger);

    List<Integer> num = new ArrayList<Integer>();
    num.add(4);
    num.add(45);
    Integer inte = new Integer(333);

    num.add(inte);
    // not possible ! 
    que.enterNumbers(num);
}
}

Чтобы решить это, я мог бы работать сList<?> или жеList<? extends Number>... так что мне не нужно решение, я хочу знать точную причину.

Единственное решение, которое я мог придумать для List - это связать Number с новым типом структуры данных.

Ответы на вопрос(2)

Ваш ответ на вопрос