问题:
在 Java 中,为什么“扩展 T”允许定义类型参数边界,但不允许“implements T”?
例如,禁止使用以下代码:
<code class="java">public interface C {} public class A<B implements C> {}</code>
虽然此代码有效:
<code class="java">public class A<B extends C> {}</code>
答案:
从语义上讲,通用约束语言中的“扩展”和“实现”之间没有区别。约束的可能性仅限于“extends”和“super”,反映了继承或赋值兼容性的方向。
在在无效代码示例的情况下,它尝试使用“implements”来定义类型参数 B 的约束。但是,“implements”不是有效的约束类型,因此不允许。
以上是为什么 Java 中的类型参数边界允许“扩展 T”,但不允许“实现 T”?的详细内容。更多信息请关注PHP中文网其他相关文章!