泛型和接口实现

时间:2018-07-01 18:55:11

标签: java generics

我尝试对下面的线程进行评论,但没有足够的代表点。
我的简单问题是:以下两个代码有什么区别?

请注意:我不确定前者是否甚至是有效的语法,也许就是答案。

public class BinarySearchTree<T> extends Comparable<T> {}

public class BinarySearchTree<T extends Comparable<T>> {}

Java : How do I implement a generic Binary Search Tree?

1 个答案:

答案 0 :(得分:4)

public class BinarySearchTree<T> extends Comparable<T> {}

树是可比较的,并且可以容纳任何类型。树对象将通过它们持有的类型进行比较。也许您仅在比较树的根元素?
这是无效的,因为Comparable是一个接口;您不能从接口扩展类。

public class BinarySearchTree<T extends Comparable<T>> {}

树只能包含Comparable类型。这是有效的。

您可以将两者合并为以下内容:

public class BinarySearchTree<T extends Comparable<T>> implements Comparable<BinaryTree<T>> {}