我需要?jiǎng)?chuàng)建一個(gè)從接口獲取方法的基于數(shù)組的堆棧。在那里,我想從接口實(shí)現(xiàn)push(E e)方法,但出現(xiàn)以下錯(cuò)誤: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; }我該如何解決這個(gè)問題?它具有與界面中相同的參數(shù)。怎么了?
2 回答

呼喚遠(yuǎn)方
TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
當(dāng)您編寫時(shí),implements Stack
您使用的是原始類型。
請參閱什么是原始類型以及我們?yōu)槭裁床粦?yīng)該使用它?
因?yàn)槟銢]有在 中指定泛型類型E
,Stack<E>
所以使用基類型 Object,就像你寫的一樣implements Stack<Object>
。這意味著該類應(yīng)該實(shí)現(xiàn)該方法push(Object)
而不是push(E)
.
大概你的意思是
class ArrayStack<E> implements Stack<E>

素胚勾勒不出你
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超9個(gè)贊
公共類 ArrayStack 實(shí)現(xiàn) Stack
這是我的班級(jí)宣言。這個(gè)有效:
公共類 ArrayStack 實(shí)現(xiàn) Stack
剛剛添加到 clas 聲明的 Stack 中。
添加回答
舉報(bào)
0/150
提交
取消