Uso de curinga genérico em vez da interface

Se você quiser armazenar uma matriz de objetos do tipoMyInterface, o seguinte é aceitável e, em caso afirmativo, quando você usaria o segundo formulário sobre o primeir

i) Usando apenas uma interface: -

List<MyInterface> mylist = new ArrayList<MyInterface>();

ii) Usando um curinga genérico: -

List<? extends MyInterface> mylist = new ArrayList<? extends MyInterface>();

Editar

Como as respostas até agora apontaram, o número ii não será compilado. Qual é a diferença entre ie um caso iii em que: -

iii) Usando um curinga genérico apenas na referência: -

List<? extends MyInterface> mylist = new ArrayList<MyInterface>();

questionAnswers(5)

yourAnswerToTheQuestion