正确写法是 ArrayList<? extends Person> al = new ArrayList<Student>()
这里主要是认识到,ArrayList<Person> 和 ArrayList<Student>的关系。我觉得,关键在于,前者不是后者的基类,ArrayList<Student> 两个都是ArrayList类。
举个例子,比如Person有两个派生类Student和Teacher。定义 ArrayList<Student> arrS,它里面只能存放Student类和其派生类的对象。但是定义 ArrayList<Person> arrP,里面可以存放Person类和其派生类对象,包括Teacher类和Teacher类的派生类。 |