日期:2014-05-20  浏览次数:20737 次

编程中遇到的一个问题..不明白
我刚刚开始学习JAVA..对概念经常混淆..最近在做一个PROJECT..我目前有两个CLASS,分别是public   abstract   class   Media   implements   Comparable <Media> 和public   class   Book   extends   Media

我在BOOK   CLASS目前写的只有
public   Book(String   aType,String   aTitle,String   aAuthor,double   aPrice,int   aPublishYear)
      {
        super(aType,aTitle,aAuthor,aPrice,aPublishYear);
       
      }
但是却compile不了..说是Book   不是抽象的,并且未覆盖   java.lang.Comparable   中的抽象方法   compareTo(Media)

我不太懂这个错误..请哪位高手指点一下..谢谢了..


------解决方案--------------------
Media是个abstract类
如果Book类要继承于Media抽象类,并且Book类不是抽象的:
1 如果Media类中有抽象方法,那Book就要实现Media类中的抽象方法
2 如果Media类中没有抽象方法,那Book直接继承就可以了
------解决方案--------------------
Book 里要对Comparable <Media> 里的接口都有实现才可以。
------解决方案--------------------
也就是说你的Book类没有实现java.lang.Comparable中的接口compareTo(Media)。 两个解决办法:

1. 在你的Book类加一个方法如下
int compareTo(Media){
//实现该的方法以用于排序操作
}

2. 将Book类定义为抽象类
------解决方案--------------------
写一个public int compareTo(Media)的方法
返回值是根据比较的结果来返回,如果前者大于后者,返回正数,等于返回0,小于返回负数