尝试重写父类(super class)接口(interface)时,Java 编译器出错

标签 java

我不明白为什么当我尝试重写下面的推送方法时会收到编译器错误。

Eclipse中的确切输出错误是“名称冲突:stackImplementation类型的方法push(T)与stack类型的push(Object)具有相同的删除,但不会覆盖它”

public interface stack<T> {
    T pop();
    void push(Object t);
}

public class stackImplementation<T> implements stack{

    private final Deque<T> deque = new ArrayDeque<T>();

    @Override
    public T pop() {
        return deque.removeFirst();
    }

    @Override
    public void push(T t) {
        deque.addFirst(t);
    }
}

谢谢!

最佳答案

您有 2 个错误:

  1. 推送接口(interface)使用 Object ,但应该是T :

    void push(T t);

  2. 类实现 stack ,但应该stack<T> :

    class stackImplementation<T> implements stack<T> {

关于尝试重写父类(super class)接口(interface)时,Java 编译器出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29178990/

相关文章:

java - java和php中的时间戳有什么区别?

java - 对于这种情况,如何在 hibernate 中定义唯一约束?

java - Android 字符串 if 语句

java - 计算二维数组中某个元素在给定列中出现的次数?

java - 添加字节时不同的编译器行为

java - 如何在 catch 和 try 中重构相同值的返回值?

java - 如何修剪字符串中的特定字符

java - 如何合并这两个 Spring Boot Controller ?

Java JFrame不会显示

java - Java 应用程序内存不足错误