【发布时间】:2015-01-11 18:00:28
【问题描述】:
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.push(),但没有前缀peek(),她这样做有什么原因吗?
【问题讨论】:
-
不清楚你的意思。但是如果你想调用超类方法而不是子类覆盖,则需要前缀
super.。