为什么允许“extends T”而不是“implements T”?

新手上路,请多包涵

在 Java 中总是使用“ extends ”而不是“ implements ”来定义类型参数的边界是否有特殊原因?

例如:

 public interface C {}
public class A<B implements C>{}

被禁止,但是

public class A<B extends C>{}

是正确的。这是什么原因?

原文由 user120623 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 518
1 个回答

在类是“实现”还是“扩展”之间,通用约束语言没有语义差异。约束可能性是“扩展”和“超级”——也就是说,这个类是否可以分配给另一个(扩展),或者这个类是否可以从那个(超级)分配。

原文由 Tetsujin no Oni 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题