带有Comparable <t> </t>的Java中的抽象类错误

时间:2014-03-12 23:17:58

标签: java abstract-class

我不知道这个错误以及如何修复它。我的所有子课都遇到了这个错误。包含错误消息和需要重写的抽象方法。添加了类以及类中的内容。

错误:

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;
    } 

1 个答案:

答案 0 :(得分:3)

compareTo方法的签名应为:

@Override
public int compareTo(final Homework3 other)

您可以使用... this来访问当前对象!


顺便说一下,你可能会在几分钟/几秒内碰到一些StackOverflowException ...... 这是因为你的compareTo方法以递归方式调用自身。您可能想要比较需要读取的页数。如果是这样,这可能是您compareTo实施的主体:

return this.getPage() - other.getPage();

干杯;)