形式
<>意味着java的泛型,而泛型的作用是
1.将运行时错误提前到编译器
2.自动的类型转换
简化版
首先理解一下<T extends Comparable
<T extends Comparable<? super T>>
如果只有T的父类实现了Comparable接口,而子类也想用这个接口怎么办呢?
class Dog implements Comparable<Dog>{
int weight;
public Dog(int weight) {
this.weight = weight;
}
@Override
public int compareTo(Dog o) {
return this.weight - o.weight;
}
}
class Labrador extends Dog{
public Labrador(int weight) {
super(weight);
}
}
作者:菜鸟Arthur
链接:https://www.zhihu.com/question/25548135/answer/171375587
来源:知乎
在这里Labrador 继承了Dog 和他的Comparable方法。但如果泛型是<T extends Comparable
针对这最后一句要强调的是,如果父类实现了一个接口,那么子类也是实现了这个接口的。具体百度。
为什么是extends而不是implements
理论上只有接口才能extends接口,原因见下,总之在泛型中,遇到后面是接口的话,可以将这边的extends看成是实现的意思
参考自 https://blog.csdn.net/Mrsgflmx/article/details/107819929