我有以下代码:
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)方法; 并且在公共无效推送(T n)线上它说:
myStack的方法推送与StackInterface的推送相同,但不会覆盖它。
方法原型是相同的;添加@Override什么都不做。为什么会这样?
答案 0 :(得分:1)
您需要以这种方式实现,然后模板匹配。
public class myStack<T> implements StackInterface<T>
答案 1 :(得分:0)
因为您正在实施StackInterface<Node<T>>
,所以推送方法需要
public void push(Node<T> n) {
}