【发布时间】:2020-02-08 02:50:11
【问题描述】:
所以我正在学习 Java 课程,我们被分配的任务之一涉及抽象数据类型 (ADT)。在这个作业中,我们应该通过一个名为 LinkedStack 的类来实现一个名为 Stack 的 ADT。 LinkedStack 有一个构造函数,但在我的教授提供给我们的测试用例中,一个新的 LinkedStack 对象可以创建一个新的 LinkedList 对象或一个新的 ArrayList 对象。我的问题是,无论我如何定义我的论点,我仍然会收到一个错误,指出该论点与类不兼容。
我尝试了一个逻辑测试来查看参数是被称为 LinkedList 还是 ArrayList,我认为这是一件好事,但我无法弄清楚如何正确分配参数。
我尝试将参数设置为 Stack,然后强制转换为 LinkedStack,其中私有 final 变量的类型为“Stack”,我也尝试将参数调用为 List,但我不能似乎摆脱了阻止我开始编译过程的错误。
这是我们开始的:
interface Stack {
public void push(Object d){
}
public Object pop(){
}
public Object peek(){
}
public boolean isEmpty(){
}
}
public class ListStack implements Stack{
public ListStack(/*argument*/){
}
}
//Separate test case file
//example of the test cases
public void peekTest1() {
Stack q = new ListStack(new LinkedList());
// assertion cases follow
}
public void peekTest2() {
Stack q = new ListStack(new ArrayList());
// assertion cases follow
}
【问题讨论】:
-
您是否尝试过将构造函数的
/* argument */位声明为List? (LinkedList和ArrayList都实现了这个接口。) -
@user2478398 我想我做到了,但我可以再试一次。也许我第一次错过了一些东西
标签: java arraylist linked-list stack