【发布时间】:2010-10-29 09:09:23
【问题描述】:
对于 CS 类,我需要使用三种数据结构解决分配的问题:队列、优先队列和堆栈。我想用一个抽象的数据结构写一个单一的解决方案。我将使用每种所需数据类型的包装类来实现 ADT。这是我目前所拥有的:
一个名为方法的接口:
public interface Method<E> {
public abstract void add(E data);
public abstract E remove();
public abstract E peek();
public abstract Iterator<E> Iterator();
}
以及实现接口的三个包装类。我称它们为 QueueMethod、StackMethod 和 PriorityQueueMethod。我在实现接口时遇到了一些麻烦。这是实现的开始,它给出了错误“类不是抽象的,并且没有覆盖抽象方法 add(java.lang.Object)”。据我所知,这两个添加方法的签名是相同的。
这里是 QueueMethod 包装类的开头:
public class PriorityQueueMethod<T> implements Method {
PriorityQueue<T> queue;
public PriorityQueueMethod() {
queue = new PriorityQueue<T>();
}
public void add(T data) {
queue.offer(data);
}
}
【问题讨论】:
-
尝试 add(Object data) 作为实现方法。
-
@AntonioP 不,那将是一个非通用解决方案。你解决了错误的问题。
标签: java generics abstract-data-type