【发布时间】:2013-12-03 16:53:35
【问题描述】:
我有一个子类,它声明了我的抽象超类中的所有方法,但它仍然给我一个错误,指出我的类不是抽象的。我无法弄清楚为什么会抛出这个错误。
我得到的具体错误是
PhoneBookEntry.java:1: 错误:PhoneBookEntry 不是抽象的,并且不会覆盖 Comparable 中的抽象方法 compareTo(Object)
我的代码有问题:
public abstract class PhoneNumber implements Comparable
{
protected String firstName, lastName;
protected int number;
public PhoneNumber(String firstName, String lastName, int number)
{
this.firstName = firstName;
this.lastName = lastName;
this.number = number;
}
public abstract String getLastName();
public abstract String getFirstName();
public abstract int getNumber();
public int compareTo(PhoneNumber other)
{
int last = other.lastName.compareTo(lastName);
int first = other.firstName.compareTo(firstName);
int num = other.number - number;
if(last > 0)
return 1;
else if(last < 0)
return -1;
else
if(first > 0)
return 1;
else if(first < 0)
return -1;
else
if(num > 0)
return 1;
else if(num < 0)
return -1;
else
return 0;
}
}
还有我的子类:
public class PhoneBookEntry extends PhoneNumber
{
public PhoneBookEntry(String firstName, String lastName, int number)
{
super(firstName, lastName, number);
}
public String getLastName()
{
return lastName;
}
public String getFirstName()
{
return firstName;
}
public int getNumber()
{
return number;
}
public int compareTo(PhoneNumber other)
{
super.compareTo(other);
}
}
【问题讨论】:
标签: java oop inheritance compiler-errors abstract