次のコードがあります。
public interface StackInterface<T> {
public T pop();
public void push(T n);
}
public class myStack<T> implements StackInterface<Node<T>> {
Node<T> head;
Node<T> next;
Node<T> tail;
public myStack(T t) {
head = new Node<T>(t);
head.next = null;
tail=head;
}
public myStack() {
head = null;
tail=head;
}
public Node<T> pop() {
if(head==null) {
return null;
}
Node<T> t= head;
head=head.next;
return t;
}
public void push(T n) {
Node<T> t = head;
head = new Node<T>(n);
head.next = t;
}
}
このコードは、次のエラーを示しています。
クラス宣言行; メソッド public void push(T n); を実装していないと言っています。public void push(T n) 行では、次のように表示されます。
myStack のメソッド push は、StackInterface の push と同じ消去を行いますが、上書きしません。
メソッドのプロトタイプは同一です。@Override を追加しても何も起こりません。なぜこうなった?