diff --git a/javaSE-day02/src/com/inmind/generic_advance06/Demo07.java b/javaSE-day02/src/com/inmind/generic_advance06/Demo07.java new file mode 100644 index 0000000..08cd103 --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic_advance06/Demo07.java @@ -0,0 +1,58 @@ +package com.inmind.generic_advance06; + +import java.util.ArrayList; +/* + 13.泛型通配符的使用(了解) + 当我们想接收一个数据类型,它们的泛型不一致,但是方法中的操作是一致的时候,如果操作???? + 泛型通配符:?,它的作用是能够匹配任意的泛型类型 + */ +public class Demo07 { + public static void main(String[] args) { + //创建3个人 + Person p1 = new Person("张三", 18); + Person p2 = new Person("李四", 19); + Person p3 = new Person("王五", 20); + + ArrayList pLists = new ArrayList<>(); + pLists.add(p1); + pLists.add(p2); + pLists.add(p3); + + //把集合中的对象,使用foreach遍历打印打印输出,本质是迭代器 + /*for (Person p : pLists) { + System.out.println(p);//将p的toString的方法返回值,打印出来 + }*/ +// showPerson(pLists); + show(pLists); + + //创建3个学生 + ArrayList sLists = new ArrayList<>(); + sLists.add(new Student("刘备", 17)); + sLists.add(new Student("关羽", 16)); + sLists.add(new Student("张飞", 15)); + + /*for (Student s : sLists) { + System.out.println(s); + }*/ + show(sLists); + } + //注意:ArrayList参数类型时,泛型是没有多态!!!! + public static void show(ArrayList list){ + for (Object o : list) { + System.out.println(o); + } + } + + + /* public static void showPerson(ArrayList list){ + for (Person person : list) { + System.out.println(person); + } + } + + public static void showStudent(ArrayList list){ + for (Student s : list) { + System.out.println(s); + } + }*/ +} diff --git a/javaSE-day02/src/com/inmind/generic_advance06/Person.java b/javaSE-day02/src/com/inmind/generic_advance06/Person.java new file mode 100644 index 0000000..d1bde77 --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic_advance06/Person.java @@ -0,0 +1,19 @@ +package com.inmind.generic_advance06; + +public class Person { + String name; + int age; + + public Person(String name, int age) { + this.name = name; + this.age = age; + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } +} diff --git a/javaSE-day02/src/com/inmind/generic_advance06/Student.java b/javaSE-day02/src/com/inmind/generic_advance06/Student.java new file mode 100644 index 0000000..1f53e31 --- /dev/null +++ b/javaSE-day02/src/com/inmind/generic_advance06/Student.java @@ -0,0 +1,16 @@ +package com.inmind.generic_advance06; + +public class Student extends Person{ + + public Student(String name, int age) { + super(name, age); + } + + @Override + public String toString() { + return "Student{" + + "name='" + name + '\'' + + ", age=" + age + + '}'; + } +}