我尝试对下面的话题发表评论,但我没有足够的代表点数。
我的简单问题是:以下两个代码有什么区别?
请注意:我不确定前者是否是有效语法,也许这就是答案。
public class BinarySearchTree<T> extends Comparable<T> {}
public class BinarySearchTree<T extends Comparable<T>> {}
最佳答案
public class BinarySearchTree<T> extends Comparable<T> {}
树是 Comparable 的,可以容纳任何类型。树对象将根据它们持有的类型进行比较。也许您只比较树的根元素?
这是无效的,因为 Comparable 是一个接口(interface);您不能从接口(interface)扩展类。
public class BinarySearchTree<T extends Comparable<T>> {}
树只能包含 Comparable 类型。这是有效的。
您可以将两者组合成以下内容:
public class BinarySearchTree<T extends Comparable<T>> implements Comparable<BinaryTree<T>> {}
关于java - 泛型和接口(interface)实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126104/