Java基础-泛型限定

?通配符,可以理解为占位符。
泛型的限定:
? extends E:可以接受E类型或者E的子类型。上限

? super E:可以接受E类型或者E的父类型。下限

代码:

import java.util.*;

public class code
{	
	public static void main(String[] args) {
		ArrayList<Person> a = new ArrayList<Person>();
		a.add(new Person("zhangsan"));
		a.add(new Person("lisi"));
		a.add(new Person("wangwu"));
		
		ArrayList<Student> b = new ArrayList<Student>();
		b.add(new Student("66"));
		b.add(new Student("55"));
		b.add(new Student("33"));
		lizi(b);
		}
		public static void lizi(ArrayList<? extends Person> a) {
			Iterator<? extends Person> it = a.iterator();
			while(it.hasNext()) {
				System.out.println(it.next().show());
			}
		}
}

class Person
{
	private String name;
	Person(String name) {
		this.name = name;
	}
	public String show() {
		return name;
	}
}

class Student extends Person
{
	Student(String name){
		super(name);
	}
}


版权声明:本文为W_Meng_H原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。