gpt4 book ai didi

java - 比较具有相同父抽象类的两个对象,输出为零

转载 作者:太空宇宙 更新时间:2023-11-04 15:04:54 26 4
gpt4 key购买 nike

我有一个实现可比较的抽象类,并具有以下内容:

public abstract class Figure  implements Comparable{

protected double height ;

public abstract double getArea();

public abstract double calculatevolume();//will be used later to compare the volume

public int compareTo(Figure o) {
return 0;

}
}

我有圆形和正方形作为Figure的子项,但是当我尝试比较两个对象的体积时,它总是返回0!

这是我在圆类中的compareTo方法:

public int compareTo(Object o) {

Figure a = (Figure) o;

if (this.calculatevolume() > ((Figure) o).calculatevolume())
return (int)this.calculatevolume();
else if (this.calculatevolume() < ((Figure) o).calculatevolume())
return (int) a.calculatevolume();

else

return 0;
}

最佳答案

它应该工作得更好,但首先请检查您的方法 calculatevolume 的实现可能返回 0 的天气。

请提供类似接口(interface)的参数 public abstract class Figure implements Comparable<Figure>

Figure circle = new Circle();
Figure square = new Square();
circle.compareTo(square);



public int compareTo(Figure a) {
if (this.calculatevolume() > a.calculatevolume())
return (int)this.calculatevolume();
else if (this.calculatevolume() < a.calculatevolume())
return (int) a.calculatevolume();
return 0;
}

关于java - 比较具有相同父抽象类的两个对象,输出为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22129515/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com