Java泛型-为什么允许“扩展T”而不允许“实现T”?

我想知道在Java中总是使用“extends”而不是“implements”来定义typeparameters的边界是否有特殊的原因

例如:

公共接口C{}
公共A类<B实施C>{}

禁止,但

公共A类<B扩展C>{} 

这是正确的。原因是什么

在泛型约束语言中,类是“实现”还是“扩展”在语义上没有区别。约束的可能性是“extends”和“super”——也就是说,这个类是否可以分配给另一个类(extends),或者这个类是否可以从那个类(super)分配

发表评论