用JAVA定义一个接口用来实现两个对象的比较。 interface CompareObject{ public int compareTo(Object o); //若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小 } 定义一个Circle类。 定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。 定义一个测试类TestInterface,创建两个ComparableCircle对象,调用compareTo方法比较两个类的半径大小。
时间: 2023-06-14 11:04:45 浏览: 167
以下是代码实现:
```java
// 定义比较接口
interface CompareObject {
public int compareTo(Object o);
// 若返回值是 0,代表相等;若为正数,代表当前对象大;负数代表当前对象小
}
// 定义圆类
class Circle {
private double radius;
public Circle(double radius) {
this.radius = radius;
}
public double getRadius() {
return radius;
}
}
// 定义可比较的圆类
class ComparableCircle extends Circle implements CompareObject {
public ComparableCircle(double radius) {
super(radius);
}
// 实现比较接口
public int compareTo(Object o) {
if (this == o) return 0;
if (o instanceof ComparableCircle) {
ComparableCircle c = (ComparableCircle) o;
if (this.getRadius() > c.getRadius()) {
return 1;
} else if (this.getRadius() < c.getRadius()) {
return -1;
} else {
return 0;
}
} else {
throw new RuntimeException("传入的对象不是ComparableCircle类型");
}
}
}
// 测试类
public class TestInterface {
public static void main(String[] args) {
ComparableCircle c1 = new ComparableCircle(3.0);
ComparableCircle c2 = new ComparableCircle(2.0);
System.out.println(c1.compareTo(c2)); // 输出 1,c1 的半径大于 c2 的半径
}
}
```
阅读全文