public static void printAl(ArrayList<? extends Person> al)
{
Iterator<? extends Person> it = al.iterator();
while(it.hasNext())
System.out.println(it.next().getName());//上面泛型改成<? super Student>后,不能调用getName方法
复制代码
这里这段代码,泛型使用<? extends Person>,老毕说使用<? super Student>是一样的,我发现使用super Student之后无法使用Person、Student类中的特有方法。
<? super Student>的意思是可以传入Student及其父类,结果导致传入的是Object类
需要对其类型强转后才能调用特有方法