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

例:

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

被禁止但是
public class A<B extends C>{}

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

最佳答案

在通用约束语言中,在类“实现”还是“扩展”之间没有语义上的区别。约束的可能性是“扩展”和“ super ”-也就是说,该类是可分配给其他类的对象(扩展),还是该类可从该类分配( super )。

09-11 17:15