是超级必须调用才能使用超类' Java的方法

时间:2015-01-11 18:00:28

标签: 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;
    }
}

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

这个解决方案的作者有super.push(),但没有加前缀peek(),她有没有理由这样做?

1 个答案:

答案 0 :(得分:2)

super仅在StackWithMin覆盖push方法时才有用,您将从push

调用Stack方法