泛型在继承上的体现:

    1. /*
    2. 泛型在继承方面的体现:
    3. 虽然类A是类B的父类,但是G<A> 和G<B>二者不具备子父类关系,二者是并列关系。
    4. 补充:类A是类B的父类,A<G> 是 B<G> 的父类
    5. */
    6. @Test
    7. public void test1(){
    8. Object obj = null;
    9. String str = null;
    10. obj = str;
    11. Object[] arr1 = null;
    12. String[] arr2 = null;
    13. arr1 = arr2;
    14. //编译不通过
    15. // Date date = new Date();
    16. // str = date;
    17. List<Object> list1 = null;
    18. List<String> list2 = new ArrayList<String>();
    19. //此时的list1和list2的类型不具子父类关系
    20. //编译不通过
    21. // list1 = list2;
    22. /*
    23. 反证法:
    24. 假设list1 = list2;
    25. list1.add(123);导致混入非String的数据。出错。
    26. */
    27. show(list1);
    28. show1(list2);
    29. }
    30. public void show1(List<String> list){
    31. }
    32. public void show(List<Object> list){
    33. }
    34. @Test
    35. public void test2(){
    36. AbstractList<String> list1 = null;
    37. List<String> list2 = null;
    38. ArrayList<String> list3 = null;
    39. list1 = list3;
    40. list2 = list3;
    41. List<String> list4 = new ArrayList<>();
    42. }