我不知道这个错误以及如何修复它。我的所有子课都遇到了这个错误。包含错误消息和需要重写的抽象方法。添加了类以及类中的内容。
错误:
MyMath3 is not abstract and does not overide abstract method compareTo(Homework3) in java.lang.Compareable
代码:
public abstract class Homework3 implements Comparable<Homework3>
public class MyMath3 extends Homework3
private int page;
private String typeHomework;
/**
* Constructor for objects of class MyMath
*/
public MyMath3(int p)
{
}
public void createAssignment(int p)
{
typeHomework="Math";
page=p;
}
public String getHomework()
{
return typeHomework;
}
public int getPage()
{
return page;
}
public String toString()
{
return typeHomework+"--- The number of pages needed to read:"+page;
}
}
public int compareTo(Homework3 obj,Homework3 obj2 )
{
int compareResult= obj.compareTo(obj2);
return compareResult;
}
答案 0 :(得分:3)
compareTo
方法的签名应为:
@Override
public int compareTo(final Homework3 other)
您可以使用... this
来访问当前对象!
顺便说一下,你可能会在几分钟/几秒内碰到一些StackOverflowException
......
这是因为你的compareTo
方法以递归方式调用自身。您可能想要比较需要读取的页数。如果是这样,这可能是您compareTo
实施的主体:
return this.getPage() - other.getPage();
干杯;)