为了账号安全,请及时绑定邮箱和手机立即绑定

在实现带有参数 E e 的方法时如何解决有关超类型的错误?

在实现带有参数 E e 的方法时如何解决有关超类型的错误?

繁星coding 2022-10-26 17:12:05
我需要创建一个从接口获取方法的基于数组的堆栈。在那里,我想从接口实现push(E e)方法,但出现以下错误:The method push(E) of type ArrayStack<E> must override or implement a supertype methodpublic interface Stack<E> extends BasicCollection {   public E top() throws EmptyStackException;   public void push(E e);   public E pop() throws EmptyStackException;}@Override   public void push(E e) {       if(size == arrayCapacity) {           array = Arrays.copyOf(array, array.length * 2);       }       array[size] = e;       size += 1;   }我该如何解决这个问题?它具有与界面中相同的参数。怎么了?
查看完整描述

2 回答

?
呼唤远方

TA贡献1856条经验 获得超11个赞

当您编写时,implements Stack您使用的是原始类型。

请参阅什么是原始类型以及我们为什么不应该使用它?

因为你没有在 中指定泛型类型EStack<E>所以使用基类型 Object,就像你写的一样implements Stack<Object>。这意味着该类应该实现该方法push(Object)而不是push(E).

大概你的意思是

class ArrayStack<E> implements Stack<E>


查看完整回答
反对 回复 2022-10-26
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

公共类 ArrayStack 实现 Stack

这是我的班级宣言。这个有效:

公共类 ArrayStack 实现 Stack

刚刚添加到 clas 声明的 Stack 中。


查看完整回答
反对 回复 2022-10-26
  • 2 回答
  • 0 关注
  • 78 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信