java综合程序设计

编写一个抽象类Calculate,这个类包含一个抽象方法count(),定义一个CommonDivser类和CommonMultiple类,都继承自Calculate类,并重写count()方法,分别实现计算最大公约数和最小公倍数。定义一个测试类,包含有main()方法,在该方法中实例化CommonDivser对象和CommonMultiple对象,并通过多态性(对象上传型),实现对count()方法的引用。

希望采纳,有问题可以再问我
分文件写

//Calculate 类
public abstract class Calculate {

    abstract int count(int a,int b);
}
public class CommonDivser extends Calculate {
    @Override
    int count(int a,int b) {
        if (a > b) {
            if (a % b == 0) { //a能被b整除
                return b;
            } else {
                return 1;
            }
        } else if (a < b) {
            if (b % a == 0) { //b能被a整除
                return a;
            } else {
                return 1;
            }
        } else {        //a b 相等
            return a;
        }
    }
}
public class CommonMutiple extends Calculate {
    @Override
    int count(int a,int b) {
        if (a > b) {
            if (a % b == 0) { //a能被b整除
                return a;
            } else {
                return a * b;
            }
        } else if (a < b) {
            if (b % a == 0) { //b能被a整除
                return b;
            } else {
                return a * b;
            }
        } else {        //a b 相等
            return a;
        }
    }
}
public class Test {
    public static void main(String[] args) {
        //利用多态性,实例化对象
        Calculate c1 = new CommonDivser();
        Calculate c2 = new CommonMutiple();

        System.out.println("12和6的最大公约数是:" + c1.count(12,6));
        System.out.println("12和6的最小公倍数是:" + c2.count(12,6));

        System.out.println("12和5的最大公约数是:" + c1.count(12,5));
        System.out.println("12和5的最小公倍数是:" + c2.count(12,5));
    }
}

img