java - 为什么允许 "extends T"而不允许 "implements T"?

标签 java generics syntax

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

例如:

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

被禁止,但是

public class A<B extends C>{} 

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

最佳答案

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

关于java - 为什么允许 "extends T"而不允许 "implements T"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/976441/

相关文章:

vba - .Value = ""和 .ClearContents 之间有什么区别?

java - 代码块在单线程程序中执行两次

Java EE - servlet 未转发到 jsp 文件

java - 在 tomcat context.xml 中指定 Oracle DB/Schema 名称

具有通用结构的 C# 类设计

java - 使用 Dagger 注入(inject)通配符类型

Delphi:泛型和 'is' - 运算符问题

flutter - @运算符在 Dart 中到底是什么意思?

javascript - 将 JavaScript for 循环翻译成 Java 并简化

c++ - C++中栈的链表实现