我对我的 Java 很生疏,我很难处理以下问题:
public abstract class Animal implements Comparable<Animal> {
//enum stored elsewhere
AnimalType type = null;
private specificCompare(Animal a){
return 0;
}
@Override
public int compareTo(Animal a){
int comp = type.compareTo(a.type);
if (comp > 0) {
return 1;
} else if (comp < 0) {
return -1;
} else {
return specificCompare(a);
}
}
}
public class Mammal extends Animal {
private mammalStuff;
public Mammal(){
...
}
public specificCompare(Mammal m){
//do specific comparison
}
}
所以,我理解为什么没有调用 Mammal 的 specificCompare (类型不正确),但我正试图找出一种干净的方法来完成这项工作。我希望能够扩展 Animal 并让它在需要时正确调用特定的比较。
除了实际答案之外,如果有人建议我阅读此文档,我将很乐意提供指向它的链接。