我有一个抽象类Person和一个接口comparable,这也被用于程序的其他部分。当前在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:
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;
}
}
Source->Override/Implement Methods
),并防止定义没有相同签名的新方法。 - Anne