【发布时间】:2015-02-19 07:11:43
【问题描述】:
我有一个抽象类 LinearStructure。 LinkedList 和 CircularList 类实现了 LinearStructure 中声明的抽象函数。我也有队列、堆栈和优先队列。
我的 Queue 构造函数如下所示:
public class Queue<T>
{
private LinearStructure<T> dataStructure;
public Queue(LinearStructure<T> c)
{
dataStructure = c;
}
.....
}
在我的堆栈复制构造函数中,我想这样做:
public Stack(Stack<T> other)
{
Queue<T> temp = new Queue<T>(new LinearStructure<T>());
this.elements = new Queue<T>(new LinearStructure<T>());
T val;
......
}
但我不能,因为 LinearStructure 是抽象的。 所以我主要想做这样的事情:
LinkedList<Integer> ll = new LinkedList<Integer>();
CircularList<Integer> cl = new CircularList<Integer>();
Stack<Integer> s = new Stack<Integer>(ll);
Queue<Integer> q = new Queue<Integer>(cl);
也就是说,Stack 和 Queue 可以接收 LinkedList 或 CircularList 的对象。
【问题讨论】:
-
问题是什么?
标签: java inheritance constructor abstract