java - 为了使用 Java 的父类(super class)方法,必须调用 super

标签 java super

class StackWithMin extends Stack<NodeWithMin>{

    public void push(int value){
        int newMin = Math.min(value, min());
        super.push(new NodeWithMin(value, newMin));
    }

    public int min(){
        if (this.isEmpty()){
            return Integer.MAX_VALUE;
        }else{
            return peek().min;
        }
    }
}

class NodeWithMin{
    public int value;
    public int min;
    public NodeWithMin(int v, int min){
        value=v;
        this.min=min;
    }
}

当我测试这个类时,似乎没有或有添加 super.在push/peek(第5行和第12行)之前产生相同的结果。那么,super 有必要吗?

这个解决方案的作者有 super.push(),但没有前缀 peek(),她这样做有什么原因吗?

最佳答案

super仅当 StackWithMin 时才需要覆盖 push方法,您将调用push方法来自Stack

关于java - 为了使用 Java 的父类(super class)方法,必须调用 super,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27890279/

相关文章:

java - Java 的 AVL 树实现

java - 根据参数在构造函数中调用不同的 super()

python - '类型错误: __init__() got multiple values for argument' with Python 3 using super() function

java - 这可能是一个愚蠢的问题,但我想澄清一下。我们可以将 'super' 说成一个对象而不是 java 中的关键字吗?

java - 从 ArrayList 中删除元素时出现异常?

java - 在 iBatis 中使用 postgreSQL 模式

java - 如何通过上下文菜单从 SQLite 数据库中删除项目?

java - 使用 super 关键字从不同包调用基类的 protected 构造函数

java - 我如何确保在 child 中调用 super 方法?

Java 使用类作为集合来添加项目