进阶day02-泛型通配符的使用(了解)
This commit is contained in:
58
javaSE-day02/src/com/inmind/generic_advance06/Demo07.java
Normal file
58
javaSE-day02/src/com/inmind/generic_advance06/Demo07.java
Normal file
@@ -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<Person> 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<Student> 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<Object>参数类型时,泛型是没有多态!!!!
|
||||
public static void show(ArrayList<?> list){
|
||||
for (Object o : list) {
|
||||
System.out.println(o);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* public static void showPerson(ArrayList<Person> list){
|
||||
for (Person person : list) {
|
||||
System.out.println(person);
|
||||
}
|
||||
}
|
||||
|
||||
public static void showStudent(ArrayList<Student> list){
|
||||
for (Student s : list) {
|
||||
System.out.println(s);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
19
javaSE-day02/src/com/inmind/generic_advance06/Person.java
Normal file
19
javaSE-day02/src/com/inmind/generic_advance06/Person.java
Normal file
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
16
javaSE-day02/src/com/inmind/generic_advance06/Student.java
Normal file
16
javaSE-day02/src/com/inmind/generic_advance06/Student.java
Normal file
@@ -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 +
|
||||
'}';
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user