super和extends用法基本一样,就是能够增加子类对象,另外指定的是自身或父类,看例子:
package com.ws.generic;
import java.util.ArrayList;
import java.util.List;
// 类的继承关系 galaxy - sun、bluestar
// |
// earth
class galaxy{
}
class bluestar extends galaxy{
}
class sun extends galaxy{
}
class earth extends sun{
}
/*
* * super : 泛型的下限 >= 即父类或自身
* 1、一般用于 下限操作
* 2、能够添加数据上面,不能添加父对象
*
*/
public class testtpf {
public static void main(String[] args) {
// 调用方法
List<galaxy> list = new ArrayList<galaxy>();
test1(list);
List<sun> list2 = new ArrayList<sun>();
test1(list2);
List<earth> list3 = new ArrayList<earth>();
// 失败,不在范围内
//test1(list3);
List<? super galaxy> list4 = new ArrayList<galaxy>();
test1(list4);
}
public static void test1(List<? super sun> list){
//不能填加父类对象
list.add(new sun());
list.add(new earth());
System.out.println(list.get(0));
}
}
泛型的通配符就是?,extends,super三个,会用就好了。