gpt4 book ai didi

java - 如何使用 > 扩展通用抽象类

转载 作者:行者123 更新时间:2023-12-02 11:57:21 28 4
gpt4 key购买 nike

我正在尝试创建一个抽象类AbstractBinSearchTree,如下所示:

public abstract class AbstractBinSearchTree<E extends Comparable<E>>
{
public abstract void add(E element);
public abstract void add(Collection<E> elemente);

public List<E> retrieveInOrder(Pos<E> p) {
...
}

我现在的问题是如何从这个类扩展。我想制作一个 ArrayBinTreeSearch ,我可以像这样实例化它:

AbstractBinSearchTree<Elem> tree = new ArrayBinSearchTree<Elem>();

我尝试过这个:

public class ArrayBinSearchTree<E extends Comparable<? super E>> extends AbstractBinSearchTree<Comparable<E>>{

Comparable<E>[] _tree;

public ArrayBinSearchTree(int size)
{
_tree = new Comparable[size];
}

@SuppressWarnings("unchecked")
@Override
public void add(Comparable<?> element) {
...
}

但我真的不觉得这是正确的使用方法。我也无法像上面提到的那样实例化。

最佳答案

我相信您需要替换以下行:

public class ArrayBinSearchTree<E extends Comparable<? super E>> extends AbstractBinSearchTree<Comparable<E>>{

与:

public class ArrayBinSearchTree<E extends Comparable<? super E>> extends AbstractBinSearchTree<E>{

否则,您将限制 AbstractBinSearchTree 中任何方法的参数。另外,扩展AbstractBinSearchTree的泛型类型如下:

public abstract class AbstractBinSearchTree<E extends Comparable<? super E>>

此外,您的 ArrayBinSearchTree 构造函数有一个 int 参数:

AbstractBinSearchTree<Elem> tree = new ArrayBinSearchTree<Elem>(5);

并且可以用菱形语法替换:

AbstractBinSearchTree<Elem> tree = new ArrayBinSearchTree<>(5);

假设您使用的是 Java 7 或更高版本

关于java - 如何使用 <E extends Comparable<E>> 扩展通用抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47512781/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com