Итак, я беру Java-класс, и одно из заданий, которое нам было дано, касается абстрактных типов данных (ADT). В этом назначении мы должны реализовать ADT, известный как Stack, через класс LinkedStack. У LinkedStack есть один конструктор, но в тестовых примерах, которые предоставил мне мой профессор, новый объект LinkedStack может создать либо новый объект LinkedList, либо новый объект ArrayList. Моя проблема в том, что независимо от того, как я определяю свой аргумент, я все равно получаю сообщение о том, что аргумент несовместим с классами.
Я пробовал логический тест, чтобы увидеть, был ли аргумент вызван какLinkedList или ArrayList, что, на мой взгляд, является хорошей вещью, но я не могу понять, как правильно назначить аргумент.
Я попытался установить аргумент в стек, а затем привести его к LinkedStack. с закрытой конечной переменной типа «Stack» я также пытался вызвать аргумент в виде списка, но не могу избавиться от ошибок, мешающих запуску процесса компиляции.
Это то, с чего мы начинаем:
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
}