题目要求
1、定义一个接口用来实现两个对象的比较。
nterface CompareObject{public int compareTo(Object o); 若返回值是 0 , 代表相等; 若为正数,代表当前对象大;负数代表当前对象小
2、定义一个Circle类,声明redius属性,提供getter和setter方法
3、定义一个ComparableCircle类,继承Circle类并且实现CompareObject接口。在ComparableCircle类中给出接口中方法compareTo的实现体,用来比较两个圆的半径大小。
4、定义一个测试类InterfaceTest,创建两个ComparableCircle对象,调用compareTo方法比较两个类的半径大小。
设计思路
1、目标是比较两圆半径大小,一个是当前类对象,一个是一参数形式传入的体现多态的对象,问题:利用多态是,引用类型是Object类,此时如何来比较子类的属性值——强转,为避免类型转换出错,在转换之前需要看看当前Object引用是否指向当前类的对象。
2、在接口中,定义的比较方法是有返回值的,所以在实现该方法时也是必须又返回值的,导致输出0半径不一定相等,不是同类对象暂时返回0,后续会更新采用比较合适的异常处理。
代码实现
import java.util.Scanner;
public class InterfaceTests {
public static void main(String[] args) {
int radius1,radius2;
Scanner scan=new Scanner(System.in);
System.out.<