我正在看一些具有以下形式的
Java类:
public abstract class A <E extends A<E>> implements Comparable <E> { public final int compareTo( E other ) { // etc } } public class B extends A <B> { // etc } public class C extends A <C> { // etc }
我在这里使用“可比较”只是为了说明通用参数“E”的可能用途.泛型/继承的这种用法是否有名称?它是干什么用的?
我的印象是,这允许抽象类提供方法的通用实现(例如compareTo),而不必在子类中提供它.但是,在此示例中,与继承方法不同,它会限制子类在同一子类的其他实例上调用compareTo,而不是任何“A”子类.这听起来不错吗?
无论如何,只是好奇,如果有任何大师之前已经看过这个,并知道它做了什么.
谢谢!