public class GenericDemo3{
public static void main(String[] args){
GenericClass<Dog> dogclass=new GenericClass<Dog>();
dogclass.setObj(new Dog());
dogclass.getObj().eat();
GenericClass<Cat> catclass=new GenericClass<Cat>();
catclass.setObj(new Cat());
catclass.getObj().eat();
//GenericClass<String> catclass=new GenericClass<String>();这种肯定是不可以的。
}
}
//泛型类所接受的参数做了限制,智能接收Aniaml类型或者其子类
class GenericClass<T extends Animal>{//不管是接口还是抽象类都用extends.
private T obj;
public GenericClass(){};
public void setObj(T obj){
this.obj=obj;
}
public T getObj(){
return obj;
}
}
/*abstract class*/interface Animal{
public abstract void eat();
}
class Dog /*extends*/ implements Animal{
public void eat(){
System.out.println("啃骨头");
}
}
class Cat /*extends*/implements Animal{
public void eat(){
System.out.println("吃鱼肉");
}
}
泛型举例3
最新推荐文章于 2023-03-26 19:39:12 发布