error de tiempo de compilación al usar comodines en la Lista

List<? extends String> list = new Arraylist<String>();
list.add("foo");

El código dado me da un error de tiempo de compilación. No lo entiendo por qué no puedo agregar cadenas en la lista. pero el código significa que podemos agregar el objeto de clase String y su objeto de clase derivado en la lista todavía recibo el error por qué

Respuestas a la pregunta(3)

Su respuesta a la pregunta