泛型在继承上的体现:

/*
1. 泛型在继承方面的体现 虽然类A是类B的父类,但是G<A> 和G<B>二者不具备子父类关系,二者是并列关系。 补充:类A是类B的父类,A<G> 是 B<G> 的父类 */
@Test
public void test1(){ Object obj = null;
String str = null;
obj = str; Object[] arr1 = null;
String[] arr2 = null;
arr1 = arr2;
//编译不通过
// Date date = new Date();
// str = date;
List<Object> list1 = null;
List<String> list2 = new ArrayList<String>();
//此时的list1和list2的类型不具子父类关系
//编译不通过
// list1 = list2;
/*
反证法:
假设list1 = list2;
list1.add(123);导致混入非String的数据。出错。 */ show(list1);
show1(list2); } public void show1(List<String> list){ } public void show(List<Object> list){ } @Test
public void test2(){ AbstractList<String> list1 = null;
List<String> list2 = null;
ArrayList<String> list3 = null; list1 = list3;
list2 = list3; List<String> list4 = new ArrayList<>(); }
04-16 07:48