我看有以下一些形式的Java类:这个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”子类。这听起来正确吗?
无论如何,只是好奇,如果任何专家在那里看到这个,并知道它做了什么。
谢谢!
该维基页面基本上是我正在寻找的解释,谢谢!我发现关于编译时“静态”多态的说明颇为有趣。 – Tom 2010-03-04 23:20:43
这里有一个很好的面向Java的讨论:http://madbean.com/2004/mb2004-3/寻找标题“更多技巧与类型参数” – 2010-03-30 19:47:24
网址[应该被包括在一个答案只作进一步阅读](http://meta.stackexchange.com/q/8259)。这个答案似乎严重依赖于URL的内容,并且可以从答案中包含的网址摘要中受益。 – 2013-12-28 09:00:06