通配符
通配符:
泛型通配符 ? 通配任意类型
<? extends T>和<? super T>的区别
<? extends T>表示该通配符所代表的类型是T类型的子类。
<? super T>表示该通配符所代表的类型是T类型的父类。
举例:
public class Demo5 {
public static void main(String[] args) {
Animal<?> objectAnimal=new Animal<Date>();
//向上限定 右边的泛型只能是它本身或是它的父类
Animal<? super Animal> animal=new Animal<Object>();
//向下限定 右边的泛型只能是它本身或是它的子类
Animal<? extends Animal> animal2=new Animal<Dog>();
//Dog为animal的子类
Animal<? extends Animal> animal3=new Animal<Cat>();
//Cat为animal的子类
}
}
class Animal<A>{}
class Dog<A> extends Animal<A>{}
class Cat<A> extends Animal<A>{}
还没有评论,来说两句吧...