0
我實現可管理堆棧的接口,我有以下代碼:問題,在接口的Java泛型
public interface Stack <E>{
public int size();
public boolean isEmpty();
public E top();
public void push(E item); //error here
,並實現該接口的類有:
public class StackArray<E> implements Stack{
private E array[];
private int top=-1;
public StackArray(int n){
array=(E[]) Array.newInstance(null, n); ////not quite sure about this
}
//more code
public void push(E item){
if (top==array.length-1) System.out.println("stack is full");
else{
top++;
array[top]=item;
}
}
我得到的錯誤是我不重寫推送方法,我看到兩者都具有相同的簽名,但我不太確定。
我該怎麼解決呢?
當你編寫'implements Stack'時,你實際上正在執行'Stack
小心報告錯誤的位置;通常最好只發布錯誤消息。在你的界面中,錯誤是** not **,它在你的實現類中。 – chrylis
這就是爲什麼你應該總是使用'@ Override'註釋,你的IDE會毫不知情地告訴你問題是什麼 –