栈的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 或者以上版本。
继续加油!:)
112021-04-29
相似问题