泛型受限--<?super>,<?extend>

泛型受限
  1. Super是指定下线;本身即其父类可以使用
  2. extend是指定上线,本身和其子类可以使用
        package com.Collection;

        import java.util.ArrayList;
        import java.util.List;

        //这个是父类
        public class Demo001 {

        }
        //这个是子类
        class Demo002 extends Demo001{

        }
        //这个是测试类
        class Demo003 {
            public static void main(String[] args) {
                List<Object> obj0 = new ArrayList<>();
                List<Demo001> obj1 = new ArrayList<>();
                List<Demo002> obj2 = new ArrayList<>();
                //这里List<? super Demo001 >;是指向了下线是;Demo001;super指到其父类object;即这里父类和本身类可以使用赋值0
                List<? super Demo001 >list2 = null;
                list2 =obj0;
                list2 =obj1;
                /*list2 =obj2;*/
                //List<? extends Demo001 >这里指定了上线;可以赋值到本身;即自己的子类Demo002;
                List<? extends Demo001 >list3 = null;
                list3 = obj1;
                list3 = obj2;
                /*list3 = obj0;*/

            }
        }
posted @ 2022-04-13 14:27  爱豆技术部  阅读(88)  评论(0)    收藏  举报