diff --git a/s-day02/src/com/inmind/generic_common05/Demo08.java b/s-day02/src/com/inmind/generic_common05/Demo08.java new file mode 100644 index 0000000..dacfef9 --- /dev/null +++ b/s-day02/src/com/inmind/generic_common05/Demo08.java @@ -0,0 +1,42 @@ +package com.inmind.generic_common05; + +import java.util.ArrayList; + +/* + 13.泛型通配符的使用(了解) + 当我们想接收一个数据类型,它们的泛型不一致,但是方法中的操作是一致的时候,如果操作???? + 泛型通配符:?,它的作用是能够匹配任意的泛型类型,?使用时默认解析为Object + + + 使用了通配符,还能限制传入的类型? + 可以,受限泛型 + + 格式: + :泛型的类型只能是B类型或者B类型的子类;上限 + : 泛型的类型只能是B类型或者B类型的父类;下限 + */ +public class Demo08 { + public static void main(String[] args) { + //创建2个集合对集合的内容进行遍历打印输出 + ArrayList list1 = new ArrayList<>(); + list1.add(new Person("张三1", 19)); + list1.add(new Person("张三2", 18)); + list1.add(new Person("张三3", 17)); + + showList(list1); + + ArrayList list2 = new ArrayList<>(); + list2.add(new Student("张三4", 19)); + list2.add(new Student("张三5", 18)); + list2.add(new Student("张三6", 17)); + showList(list2); + } + + //定义一个接收集合,对集合进行编译输出的方法 + public static void showList(ArrayList list){//泛型的上限 +// public static void showList(ArrayList list){//泛型的下限 + for (Person p : list) { + System.out.println(p); + } + } +} diff --git a/s-day02/src/com/inmind/generic_common05/Person.java b/s-day02/src/com/inmind/generic_common05/Person.java new file mode 100644 index 0000000..890c41a --- /dev/null +++ b/s-day02/src/com/inmind/generic_common05/Person.java @@ -0,0 +1,11 @@ +package com.inmind.generic_common05; + +public class Person { + String name; + int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } +} diff --git a/s-day02/src/com/inmind/generic_common05/Student.java b/s-day02/src/com/inmind/generic_common05/Student.java new file mode 100644 index 0000000..513626b --- /dev/null +++ b/s-day02/src/com/inmind/generic_common05/Student.java @@ -0,0 +1,7 @@ +package com.inmind.generic_common05; + +public class Student extends Person{ + public Student(String name, int age) { + super(name, age); + } +}