版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DongGeDeBoKe/article/details/83928165
举例说明,如果两个类都有一个方法,就是获取自己类型的对象,例如:
public class Dog implements AnimalDog{
@Override
public AnimalDog getAnimal() {
return null;
}
}
public interface AnimalDog{
public AnimalDog getAnimal();
}
public class Cat implements AnimalCat {
@Override
public AnimalCat getAnimal() {
return null;
}
}
public interface AnimalCat{
public AnimalCat getAnimal();
}
两个类有同样的方法,我们就会想到,那就再写一个接口,好我们就再建一个,
那问题来了,我们只能返回Object类型,因为不知道是什么类型
public interface Animal{
public Object getAnimal();
}
接口都继承这个接口
public interface AnimalCat extends Animal{
public AnimalCat getAnimal();
}
public interface AnimalDog extends Animal{
public AnimalDog getAnimal();
}
似乎挺好的,但是有没有发现麻烦许多,泛型就可以解决这个问题了,代码重用
其实只需要定义一个这样的接口就行了.
public interface Animal<T>{
public <T> T getAnimal();
}
然后这样使用
public class Dog implements Animal<Dog>{
@Override
public Dog getAnimal() {
return null;
}
}
public class Cat implements Animal<Cat> {
@Override
public Cat getAnimal() {
return null;
}
}
public interface Animal<T>{
public <T> T getAnimal();
}
多简单的代码,这就是泛型的魅力。好了以后有什么好的东西都会分享出来,泛型要多使用才能有所收获,理解的更深,框架都少不了这个的。