如何修复 JAVA VS 代码中的实现错误,“必须实现继承的抽象类”
Posted
技术标签:
【中文标题】如何修复 JAVA VS 代码中的实现错误,“必须实现继承的抽象类”【英文标题】:How do I fix implementation error in JAVA VS code, "must implement the inherited abstract class" 【发布时间】:2020-11-14 22:17:52 【问题描述】:我目前正在学习接口、类和泛型。
我目前的任务是创建一个模仿 Java 中“ArrayLists”的类。 (可能是java 7)
this is the interface
我创建了一个类:public class StudentArrayList implements SimpleArrayList<E>
但我收到此错误:I am getting this error
错误:The type StudentArrayList must implement the inherited abstract method SimpleArrayList<E>.set(int, E)Java(67109264)
我已经实现了类中的所有函数签名,但仍然是我一次又一次地要求实现。 我该如何解决这个问题?请告诉我。 谢谢!
StudentArrayList.java:
public class StudentArrayList implements SimpleArrayList<E>
public static void main(String[] args)
System.out.println("Success");
@Override
public int size()
// TODO Auto-generated method stub
return 0;
@Override
public boolean isEmpty()
// TODO Auto-generated method stub
return false;
@Override
public boolean contains(E o)
// TODO Auto-generated method stub
return false;
@Override
public E[] toArray()
// TODO Auto-generated method stub
return null;
@Override
public void add(E e)
// TODO Auto-generated method stub
@Override
public void remove(E o)
// TODO Auto-generated method stub
@Override
public boolean containsAll(SimpleArrayList<E> c)
// TODO Auto-generated method stub
return false;
@Override
public boolean addAll(SimpleArrayList<E> c)
// TODO Auto-generated method stub
return false;
@Override
public boolean addAll(int index, SimpleArrayList<E> c)
// TODO Auto-generated method stub
return false;
@Override
public boolean removeAll(SimpleArrayList<E> c)
// TODO Auto-generated method stub
return false;
@Override
public boolean retainAll(SimpleArrayList<E> c)
// TODO Auto-generated method stub
return false;
@Override
public void clear()
// TODO Auto-generated method stub
@Override
public E get(int index)
// TODO Auto-generated method stub
return null;
@Override
public void set(int index, E element)
// TODO Auto-generated method stub
@Override
public void add(int index, E element)
// TODO Auto-generated method stub
@Override
public void remove(int index)
// TODO Auto-generated method stub
@Override
public int indexOf(E o)
// TODO Auto-generated method stub
return 0;
@Override
public int lastIndexOf(E o)
// TODO Auto-generated method stub
return 0;
@Override
public SimpleArrayList subList(int fromIndex, int toIndex)
// TODO Auto-generated method stub
return null;
`
【问题讨论】:
MS Visual Code 很棒……但对于 Java,我强烈推荐 Eclipse(我的偏好)、NetBeans 或 IntelliJ 之类的 IDE。 IntellJ 由于某种原因无法在我的计算机上运行,我必须尽快提交此作业,所以我不能花时间安装/修复 IntellJ 然后使用文本编辑器。 Sublime Text、Atom、Notepad++。 【参考方案1】:您似乎正在尝试编写实现通用接口的通用类。问题是您实际上并没有将该类声明为泛型。因此编译器认为E
是一个类名。
声明:
public class StudentArrayList implements SimpleArrayList<E>
应该是:
public class StudentArrayList<E> implements SimpleArrayList<E>
StudentArrayList
之后的<E>
将E
声明为StudentArrayList
的类型参数。
编译错误可能是编译器认为E
是一个类名(而不是类型参数)而不是为它找到任何定义的结果。
【讨论】:
以上是关于如何修复 JAVA VS 代码中的实现错误,“必须实现继承的抽象类”的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Windows 上修复 VS 2019 中的 SFML 错误?
如何修复从 VS2010 升级到 VS2013 的项目中的链接器错误,其中链接器正在寻找不存在的 MFC 库文件?
如何在 MacOS Monterey 上修复 VS COde“致命错误:运行时:bsdthread_register 错误”