【发布时间】:2012-01-09 06:00:14
【问题描述】:
我有一个抽象类 Person 和接口可比较,它也用于程序的其他一些部分。目前我在 Person 中有一个 compareTo() 方法。当我尝试编译时,我得到:
The type Student must implement the inherited abstract method
Comparable<Person>.compareTo(Person, Person)
我到底要做什么?我不会在任何子类中实现此方法,因为我需要对所有子类都使用此方法,学生、导师、教授等......有没有更好的方法来做到这一点?
界面:
interface Comparable<Element> {
public int compareTo(Element nodeA, Element nodeB);
}
抽象类人:
abstract class Person implements Comparable<Person> {
protected String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String newName) {
name = newName;
}
public String toString() {
return name;
}
public int compareTo(Person personB) {
int comp = this.name.compareTo(personB.getName());
return comp;
}
}
还有班级学生
class Student extends Person implements Comparable<Person> {
private int id;
public Student(String name, int id) {
super(name);
this.id = id;
}
public int getID() {
return id;
}
public void setID(int newID) {
id = newID;
}
public String toString() {
return id + ", " + name;
}
}
【问题讨论】:
标签: java inheritance methods abstract