我创建了自己的类“MyStack”,它继承自 Stack 并存储我在其他地方声明的项目“MyItem”。
public class MyStack extends Stack<MyItem> {
private int pops = 0;
public MyStack() {
}
}
Run Code Online (Sandbox Code Playgroud)
我想重写该方法pop()
,我这样做:
@Override
public MyItem pop() {
if (this.isEmpty()) {
return null;
}
pops++;
return this.super();
}
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为'java.util.Stack' is not an inner class
.
然后我尝试使用pop()
:
@Override
public MyItem pop() {
if (this.isEmpty()) {
return null;
}
pops++;
return this.pop();
}
Run Code Online (Sandbox Code Playgroud)
但正如pop()
调用一样pop()
,我得到的是无限递归调用,因此,StackoverflowError
.
我不明白我应该如何覆盖它。