栈的push方法实现问题

来源:3-2 栈的基本实现

Zobeltitz

2020-07-09

波波老师好,我在实现栈的push方法时发现Eclipse在ArrayStack中自动生成重写方法的时候将push方法的参数从”E e“改为”Object e“。在我改回去之后编译无法通过,显示”Name clash:ArrayList中的push方法与接口中的同名却没有重写该方法“。我不是很明白这里为什么出现这个错误。我记得重写方法的参数类型应该与接口中完全一样。
最后我保持参数为”Object e“,在给addLast方法传参时用强制类型转换(E)可以编译通过。但是上面这种情况有点令人迷惑

写回答

1回答

liuyubobobo

2020-07-10

请先确认一下你的接口设计和课程完全是一致的,尤其是 Stack 的接口中是否使用了泛型。以及 ArrayStack 继承的接口中是否包含了泛型?

public class ArrayStack<E> implements Stack<E>


下载课程的官方代码,在你的环境下运行,看一下是否有同样的问题。本小节官方代码下载地址:https://git.imooc.com/coding-207/coding-207/src/master/03-Stacks-and-Queues/02-Array-Stack/src 


另外,请确认你的环境的 Java 版本是 8 或者以上版本。


继续加油!:)

1
1
走走道鞋带开了
我遇到的问题在问答区都找到答案了 :)
2021-04-29
共1条回复

玩转数据结构

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

6221 学习 · 1704 问题

查看课程