泛型在继承方面的体现

若类A是类B的父类,但是G 和G二者不具备子父类关系,二者是并列关系。
若类A是类B的父类,A 是 B 的父类

  1. public void test1(){
  2. List<Object> list1 = null;
  3. List<String> list2 = new ArrayList<String>();
  4. //此时的list1和list2的类型不具子父类关系
  5. //编译不通过
  6. // list1 = list2;
  7. /*
  8. 反证法:
  9. 假设list1 = list2;
  10. list1.add(123);导致混入非String的数据。出错。
  11. */
  12. show(list1);
  13. show1(list2);
  14. }
  15. public void show1(List<String> list){
  16. }
  17. public void show(List<Object> list){
  18. }
  19. @Test
  20. public void test2(){
  21. AbstractList<String> list1 = null;
  22. List<String> list2 = null;
  23. ArrayList<String> list3 = null;
  24. list1 = list3;
  25. list2 = list3;
  26. List<String> list4 = new ArrayList<>();
  27. }