¿Entender los límites superior e inferior en? en Java Genéricos

Realmente me está costando entender el parámetro de comodín. Tengo algunas preguntas al respecto.

? como parámetro de tipo solo puede ser usado en métodos. p.ej:printAll(MyList<? extends Serializable>) No puedo definir clases con? como parámetro de tipo

Entiendo el límite superior en?. printAll(MyList<? extends Serializable>) significa: "printAll imprimiráMyList Si tiene objetos que implementan elSerialzable interfaz."
Tengo un pequeño problema con elsuper. printAll(MyList<? super MyClass>) significa: "printAll imprimiráMyList si tiene objetos deMyClass o cualquier clase que se extiendaMyClass (los descendientes deMyClass)."

Corrígeme donde me equivoqué.

En fin, soloT oE oK oV oN Se pueden usar como parámetros de tipo para definir clases genéricas.? Solo se puede utilizar en métodos.

Actualización 1:

public void printAll(MyList<? super MyClass>){
    // code code code
}

De acuerdo con el libro de Ivor Horton,MyList<? super MyClass> significa que puedo imprimirMyList si tiene objetos deMyClass o cualquiera de las interfaces o clases que implementa. Es decir,MyClass es unlímite inferior. Es la última clase en la jerarquía de herencia. Esto significa que mi suposición inicial era errónea.

Entonces, di siMyClass parece:

public class MyClass extends Thread implements ActionListener{
    // whatever
}

entonces,printAll() se imprimirá si
1. hay objetos deMyClass en la lista
2. Hay objetos deThread oActionListener en elList

Actualización 2:

Entonces, después de haber leído las muchas respuestas a la pregunta, aquí está mi entendimiento:

? extends T mediocualquier clase que se extiendaT. Así, nos referimos a laniños deT. Por lo tanto,T es el límite superior. La clase más alta en la jerarquía de herencia.

? super T mediocualquier clase / interfaz que seasuper deT. Así nos referimos a todos lospadres deT. T Es así el límite inferior. La clase más baja en la jerarquía de herencia.

Respuestas a la pregunta(4)

Su respuesta a la pregunta