我需要创建一个从接口获取方法的基于数组的堆栈。在那里,我想从接口实现push(E e)方法,但出现以下错误:The method push(E) of type ArrayStack<E> must override or implement a supertype methodpublic interface Stack<E> extends BasicCollection { public E top() throws EmptyStackException; public void push(E e); public E pop() throws EmptyStackException;}@Override public void push(E e) { if(size == arrayCapacity) { array = Arrays.copyOf(array, array.length * 2); } array[size] = e; size += 1; }我该如何解决这个问题?它具有与界面中相同的参数。怎么了?
2 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
当您编写时,implements Stack
您使用的是原始类型。
因为你没有在 中指定泛型类型E
,Stack<E>
所以使用基类型 Object,就像你写的一样implements Stack<Object>
。这意味着该类应该实现该方法push(Object)
而不是push(E)
.
大概你的意思是
class ArrayStack<E> implements Stack<E>
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
公共类 ArrayStack 实现 Stack
这是我的班级宣言。这个有效:
公共类 ArrayStack 实现 Stack
刚刚添加到 clas 声明的 Stack 中。
添加回答
举报
0/150
提交
取消