泛型不仅用于列表之类的容器。这种“扩展自身”类型的参数用于让超类在方法参数和返回类型之类的地方引用子类,即使在编译超类时没有实际的特定子类可用。它类似于C++中反复出现的模板模式。
您的示例的子类将声明为
class Foo extends A<Foo>
继承的
foo()方法变成
void foo(Foo x)
看看如何
A定义一个
Foo即使实际上并不了解参数也可以接受参数的方法
Foo?
是的,这种事情很罕见,但并非闻所未闻:内置的Enum类使用了类似的技巧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)