在 Java 中实现堆栈

Implementing a stack in Java

我是一名大学生,试图在我的数据结构课程中实现堆栈。我的教授正在让我们使用继承来实现堆栈。我不习惯使用继承和扩展 类 所以我对他的 TODO: 注释指定的内容有点困惑。我想我只需要前一两个评论的建议,然后我应该能够弄清楚其余的。

我填写了我认为应该怎么做,但它的措辞方式让我觉得我做错了。我不明白为什么“super”和“this”是合法的但不是必需的?这是否意味着我只能说 add(item);会好的吗?

@SuppressWarnings("serial")
public class Stack<T> extends ArrayList<T> {
    // TODO 1: declare a private integer member named "cursor" and initialize it to
    // -1

        private int cursor = -1;

    /**
     * Push the passed item of type T onto the stack. This is equivalent to calling
     * the add function inherited from ArrayList.
     *
     * @param item the item to be pushed onto the stack.
     */
    public void push(T item) {
        // TODO 2: add the item passed as a parameter using the add function inherited
        // from the ArrayList super class. Hint: it is legal but unnecessary to use the
        // syntax "super." or "this." to call the add function.
        super.add(item);
    }

你有Stack extends ArrayList

Stack 不会覆盖 add 函数,因此 super 不是必需的。

使用 super 调用扩展函数 class (ArrayList)