class Fruit implements Comparable<Fruit> {
private final int weigth;
public Fruit(int weight) {
this.weigth = weight;
}
@Override
public int compareTo(Fruit other) {
return Integer.compare(this.weigth, other.weigth);
}
public int getWeigth() {
return this.weigth;
}
}
class Apple extends Fruit {
public Apple(int weight) {
super(weight);
}
}
class Orange extends Fruit {
public Orange(int weight) {
super(weight);
}
}
任务是重新设计类型系统,实现水果(苹果与苹果、橙子与橙子,但不是苹果与橙子、橙子与苹果)的正确比较。
而“苹果与橘子、橘子与苹果的比较,应在编制时加以限制”。
不知道如何正确更改,请给出提示。
3条答案
按热度按时间vql8enpb1#
如果两个水果不能比较,那为什么要比较呢?comparable应该在具体的类级别上定义,这样就可以解决您的问题。
或者,如果您想在现有类中放入check,您可以执行以下操作
pzfprimi2#
}
}
}
i2byvkas3#
我建议给水果引入一个泛型,它代表“自我类型…”
证明: