¿Por qué no es posible llamar a la Lista <Número> no con la Lista <Integer> incluso si el Número entero se extiende?

Me preguntaba por qué no es posible llamarList<Number> no conList<Integer> ¿incluso Integer es una clase extendida del número de clase abstracto? Hay un error lógico, ya que podría llamar a un método con el parámetro número también con entero.

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);
}
}

Para resolverlo pude trabajar conList<?> oList<? extends Number>... así que no necesito la solución, quiero saber la razón exacta.

La única solución que podría pensar en Lista es vincularse con Número como un nuevo Tipo de Estructura de Datos.

Respuestas a la pregunta(2)

Su respuesta a la pregunta