我需要創建一個從接口獲取方法的基于數組的堆棧。在那里,我想從接口實現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
提交
取消