编程中遇到的一个问题..不明白
我刚刚开始学习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,小于返回负数