s-day02-泛型通配符的上下限(受限泛型)(了解)
This commit is contained in:
@@ -5,6 +5,12 @@ import java.util.ArrayList;
|
|||||||
/*
|
/*
|
||||||
13.泛型通配符的使用(了解) ?
|
13.泛型通配符的使用(了解) ?
|
||||||
当我们要接受一个数据类型,它的泛型不一致,要使用泛型通配符,匹配?
|
当我们要接受一个数据类型,它的泛型不一致,要使用泛型通配符,匹配?
|
||||||
|
|
||||||
|
----------------------------------------
|
||||||
|
|
||||||
|
格式:
|
||||||
|
<? extends B> :泛型的类型只能是B类型或者B类型的子类;上限
|
||||||
|
<? super B> : 泛型的类型只能是B类型或者B类型的父类;下限
|
||||||
*/
|
*/
|
||||||
public class Demo10 {
|
public class Demo10 {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
@@ -25,9 +31,21 @@ public class Demo10 {
|
|||||||
/*
|
/*
|
||||||
ArrayList<Object> 这样写的话是错的,泛型是没有多态的
|
ArrayList<Object> 这样写的话是错的,泛型是没有多态的
|
||||||
*/
|
*/
|
||||||
public static void showList(ArrayList<?> list){
|
// public static void showList(ArrayList<?> list){
|
||||||
|
//受限泛型的上限
|
||||||
|
public static void showList(ArrayList<? extends Person> list){
|
||||||
|
for (Person p : list) {
|
||||||
|
System.out.println(p);
|
||||||
|
p.show();
|
||||||
|
p.method();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//受限泛型的下限
|
||||||
|
/*public static void showList(ArrayList<? super Student> list){
|
||||||
for (Object o : list) {
|
for (Object o : list) {
|
||||||
System.out.println(o);
|
System.out.println(o);
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,4 +19,12 @@ public class Person {
|
|||||||
", age=" + age +
|
", age=" + age +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void show(){
|
||||||
|
System.out.println("人类型可以调用的方法");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void method(){
|
||||||
|
System.out.println("父类非私有功能");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,4 +16,14 @@ public class Student extends Person{
|
|||||||
", name='" + name + '\'' +
|
", name='" + name + '\'' +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void show() {
|
||||||
|
System.out.println("学生重写show");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void method() {
|
||||||
|
System.out.println("学生重写method");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user