0

次のコードがあります。

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 を追加しても何も起こりません。なぜこうなった?

4

2 に答える 2

0

を実装しているためStackInterface<Node<T>>、プッシュ メソッドは

public void push(Node<T> n) {
}
于 2013-10-28T03:42:29.663 に答える