我有一个名为Individuo
的抽象类,它实现了Comparable<Individuo>
接口。
但是,当我尝试覆盖子类中的方法时,它实现了以下方法:
@Override
public int compareTo(Object o) {
return 0;
}
它不应该实现以下内容吗?
@Override
public int compareTo(Individuo o) {
return 0;
}
这是声明
个人:
public abstract class Individuo<I extends Individuo> implements Cloneable, Comparable<Individuo>
Individuo_MultiOOP(子):
public class Individuo_MultiOOP extends Individuo implements Cloneable
最佳答案
子级可能扩展了Individuo
的原始版本,该版本已通过某些参数进行了概括。
在这种情况下,子代中的compareTo(Object o)
将编译:
abstract class Individuo<T> implements Comparable<Individuo<T>> {}
class Child extends Individuo {
@Override
public int compareTo(Object o) {
return 0;
}
}
确保子级使用提供的所有通用参数扩展正确的
Individuo
:class Child extends Individuo<Child> {
@Override
public int compareTo(Object o) { // this shouldn't compile
return 0;
}
}