Java泛型——限制泛型类型

前面说到,泛型可以是任意类型,但有时候需要加以限制才安全;

先建一个父类Animal;

package Month01.Day05.Demo01;

public class Animal {

	public void print(){
		System.out.println("动物");
	}
}

 再写两个子类Dog和Cat;

package Month01.Day05.Demo01;

public class Dog extends Animal{

	public void print(){
		System.out.println("Dog");
	}
}
package Month01.Day05.Demo01;

public class Cat extends Animal{

	public void print(){
		System.out.println("Cat");
	}
}

再写泛型类

package Month01.Day05.Demo01;

public class fanxing <T extends Animal>{

	private T t;

	public T getT() {
		return t;
	}

	public void setT(T t) {
		this.t = t;
	}

	public fanxing(T t) {
		super();
		this.t = t;
	}
	
	public void print(){
		System.out.println("T的类型是:"+t.getClass().getName());
	}
}

最后测试类:

package Month01.Day05.Demo01;

public class Test {

	public static void main(String[] args) {
		fanxing<Dog> fx=new fanxing<Dog>(new Dog());
		Dog dog=fx.getT(); //返回类型是dog类型
		dog.print();
		
		fanxing<Cat> fx1=new fanxing<Cat>(new Cat());
		Cat cat=fx1.getT();  //返回类型是Cat类型
		cat.print();
		
		fanxing<Animal> fx2=new fanxing<Animal>(new Animal());
		Animal a=fx2.getT();  //返回类型Animal类型
		a.print();
	}
}

输出结果为:

Dog
Cat
动物

这里不管是Animal类或者Animal类的子类,都可以运行输出;

但要是换成其他的:

直接编译报错,我们发现这时候的泛型类加了限制,其他的类不行; 

扫描二维码关注公众号,回复: 4805332 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_37084904/article/details/85927567