ins*_*ity 0 java generics extends interface implements
我想创建一个泛型类,它接受一些可比较的泛型类型的元素.所以我这样做:
public class Foo<T extends Comparable<T>>
在课堂上Foo我有类似的东西:
public void bar(T t)
我确信我可以写这样的代码:t.compareTo(v).
问题1:为什么在使用泛型时我们extends不implements使用接口?Comparable不是一个阶级.
\\
现在假设我想创建另一个与上面类似的类也实现该bar方法.我想创建这个界面:
public interface Face<T extends Comparable<T>> {
public void bar(T t);
}
Run Code Online (Sandbox Code Playgroud)
然后我改变类Foo来实现Face(public class Foo<T extends Comparable<T>> implements Face).
问题2:执行此操作时,我收到以下编译错误:
Foo类型的方法栏(T)必须覆盖或实现超类型方法.
为什么是这样?
当我告诉Eclipse add the unimplemented methods我得到:
public void bar(Comparable t)而不是... bar(T t).
X extends Y的约束是,我们要指定X可以分配给输入Y-在它的非物质是否结束Y是一个接口或类,所以让你使用implements或extends根据是否Y是一个或另一个似乎是一个麻烦.public class Foo<T extends Comparable<T>> implements Face<T>- Face是一个带有类型参数的接口,因此在扩展接口时需要填写该类型参数.