Olá a todos,
Estou com outra dúvida em uma questão do TestKiller. A questão é essa:
class A {}
class B extends A {}
class C extends A {}
class D extends B {}
/*
Question 179
Which three statements are true? (Choose three.)
A. The type List<A> is assignable to List.
B. The type List<B> is assignable to List<A>.
C. The type List<Object> is assignable to List<?>.
D. The type List<D> is assignable to List<? extends B>.
E. The type List<? extends A> is assignable to List<A>.
F. The type List<Object> is assignable to any List reference.
G. The type List<? extends B> is assignable to List<? extends A>.
*/
Segundo o TestKiller a resposta é:CDG
O que eu não entendi é porque a letra A está errada? Uma vez que posso fazer isso:
import java.util.*;
class A {}
class B extends A {}
class C extends A {}
class D extends B {}
public class Test179 {
static public void main(String[] args){
List<A> lista = new ArrayList<A>();
teste(lista);
}
static void teste(List list){ }
}
Alguém pode dar uma mão??
Obrigado