【发布时间】:2011-01-23 21:14:34
【问题描述】:
我正在查看一些具有以下形式的 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
}
我在这里使用“Comparable”只是为了说明通用参数“E”的可能用法。泛型/继承的这种用法有名称吗?它是干什么用的?
我的印象是,这允许抽象类提供方法的通用实现(例如 compareTo),而不必在子类中提供。但是,在此示例中,与继承的方法不同,它将限制子类在同一子类的其他实例上调用 compareTo,而不是在任何“A”子类上调用。这听起来对吗?
不管怎样,只是好奇那里有没有大师以前见过这个并知道它的作用。
谢谢!
【问题讨论】:
标签: java generics inheritance