链表实现队列的入队方法一直覆盖出错

来源:4-7 带有尾指针的链表:使用链表实现队列

梁凤波

2018-10-02

链表实现队列的入队方法一直覆盖不了,以下代码一直报错:

Error:(3, 8) java: com.boblog.queue.LinkedListQueue不是抽象的, 并且未覆盖com.boblog.queue.Queue中的抽象方法enqueue(java.lang.Object)
Error:(47, 17) java: 名称冲突: com.boblog.queue.LinkedListQueue中的enqueue(E)和com.boblog.queue.Queue中的enqueue(E)具有相同疑符, 但两者均不覆盖对方
Error:(46, 5) java: 方法不会覆盖或实现超类型的方法

在队列Queue接口我确定是定义入队接口,但是一直报错误,

void enqueue(E e);
@Override
    public void enqueue(E e) {
        if (tail == null) {
            tail = new Node(e);
            head = tail;
        } else {
            tail.next = new Node(e);
            tail = tail.next;
        }
        size++;
    }

编辑器提示这样修改就可以,我有点不太懂,想请教下老师是如何回事呢,我的JDK是1.8

 @Override
    public void enqueue(Object o) {
        if (tail == null) {
            tail = new Node((E) o);
            head = tail;
        } else {
            tail.next = new Node((E) o);
            tail = tail.next;
        }
        size++;
    }
写回答

1回答

liuyubobobo

2018-10-02

这个课程的所有代码都可以通过课程官方github获得。传送门:https://github.com/liuyubobobo/Play-with-Data-Structures


请首先尝试在你的环境下运行课程官方代码,看是否有同样的问题?如果没有同样的问题,请仔细查看你的代码哪里和课程的官方代码不同,进行比较调试。


你给我的代码段不是这个报错的问题发生的根源。请关注一下自己的Queue接口的定义和LinkedListQueue类是否是在正确的实现Queue接口:)


加油!:)

0
1
梁凤波
非常感谢波波老师,我刚才看到编辑器给我提示的代码是强制转换Object类型,那应该问题就出在类型上面,我发现了我定义LinkedListQueue类用来实现Queue接口时候没有定义泛型,故发生了该错误,已修复,继续学习! : public class LinkedListQueue implements Queue
2018-10-02
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程