Учитывая следующий код:
public class Test{
static class Bird{}
static class Sparrow extends Bird{}
public static void main(String args[]){
List<? extends Bird> list = new ArrayList<Bird>();
list.add(new Bird()); //Does not compile ...line 1
list.add(new Sparrow());//Does not compile ...line 2
}
}
Может кто-нибудь объяснить, почему я не могу добавить объект new Bird()
и объект new Sparrow()
в список? Я ожидал, что строки 1 и строки 2 будут скомпилированы, поскольку класс Sparrow
является подклассом Bird
, а Bird
является самим собой.