//类型通配符上限:<? extends 类型> 其实上限就是自己是上限 表示的是 自己和子类可以用
//List<? extends Number> 它表示的类型是Number或者其子类型
//类型通配符下线: <? super 类型> 其实下限就是自己以及父类 表示的是 自己和父类可以使用
// List<? super Number>:它表示的类型是Number或者其父类型
public static void main(String[] args) {
//类型通配符 没有上限下限的区别
List<?> list1=new ArrayList<Object>();
List<?> list2=new ArrayList<Number>();//Number继承object
List<?>list3=new ArrayList<Integer>();//Integer继承Number
System.out.println("---------------------------");
//类型通配符上限:<? extends 类型> extends后面跟什么类型 就是以什么类型为上限
List<? extends Number> list5=new ArrayList<Object>();
List<? extends Number> list6=new ArrayList<Number>();
List<? extends Number> list7=new ArrayList<Integer>();
//类型通配符下限:<? super 类型> super后面跟什么类型 就是以什么类型为下限
List<? super Number> list8=new ArrayList<Object>();
List<? super Number> list9=new ArrayList<Number>();
List<? super Number> list10=new ArrayList<Integer>();
}
public static void main(String[] args) {
System.out.println(sum(1,2,3,4));
System.out.println(sum("1",23,45,5));
}
public static int sum(int...a){//a是一个数组
int sum=0;
for(int i:a){
sum+=i;
}
return sum;
}
//
public static int sum(String b,int...a){//如果有其他类型 可变参数列表必须放在最后面
return 0;
}