关于Java的编程题,有哪位能解答解答

1、定义一个类,有方法实现求最大公约数
2、定义上述类的子类,有方法实现求最小公倍数
3、在public class 中,通过键盘输入,计算和输出结果
4、要求类中的方法的传值,采用带参数和不带参数的两种方式,分别实现


import java.util.Scanner;

/**
 *
 * https://zhidao.baidu.com/question/464132909.html
 */
public class GCD_LCM {

    /**
     * https://ask.csdn.net/questions/7530425?spm=1005.2025.3001.5141
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /*
         * 百度关键词:java 获取键盘输入 两个整数
         * 参考链接:
         *        ————————————————
        https://www.cnblogs.com/Celiachen/p/13846842.html
         * 
         * */

        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个需要计算最大公约数的整数:");
        int a=sc.nextInt();
        int b=sc.nextInt();
        System.out.println(a+"和"+b+"的最大公约数是:"+new GCD().FindResult(a, b));
        System.out.println("请输入两个需要计算最小公倍数的整数:");
        a=sc.nextInt();
        b=sc.nextInt();
        System.out.println(a+"和"+b+"的最小公倍数是:"+new LCM().FindResult(a, b));
        
        new GCD().FindResultNoArgs();
        new LCM().FindResultNoArgs();
    }

}

/**
 * 
 * 百度关键词:最大公约数 算法
 *https://www.imooc.com/article/23830
 */
class GCD{
    
    /**
     * 辗转相减法
     * 算法参考:
     *     https://blog.csdn.net/yxdayd/article/details/44774015
    
     */
    public int FindResult(int a ,int b) {
        
        while(true) {
            //如果a大于b,则将a的值设为a原本的值减去b的值
            if (a > b)
                a -= b;
            else if (a < b) //如果a小于b,则将b的值设为b原本的值减去a的值
                b -= a;
            else        //如果经过运算,最后a和b的相等,则返回a的值,即为原本a和b的最大公约数
                return a;
        }        
    }
    
    /*不带参数版本
     * 不知道这个我理解对意思没?
     * 
     * */
    public void FindResultNoArgs() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个需要计算最大公约数的整数:");
        int a=sc.nextInt();
        int b=sc.nextInt();    
        System.out.println(a+"和"+b+"的最大公约数是:"+ FindResult(a,b)); 
    }
}

//求最小公倍数  百度关键词:最小公倍数 算法
class LCM extends GCD{
    
    /*
     * 算法参考:
     https://bbs.csdn.net/topics/90155042?list=1079159 
     作者:Norris_Zhang 
     * */

    public int FindResult(int a ,int b) {
        
        //最小公倍数是两数乘积除以最大公约数。
        //百度关键词 :子类继承父类 重写
        //参考链接:https://blog.csdn.net/qq_43527632/article/details/83475439
        int gbs = a * b / super.FindResult(a,b);
        
        return gbs;
        
    }
    /* 无参数版,不知道我理解对意思么?*/
    public void FindResultNoArgs() {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入两个需要计算最大公约数的整数:");
        int a=sc.nextInt();
        int b=sc.nextInt();
        
        System.out.println(a+"和"+b+"的最小公倍数是:"+FindResult(a, b));
        
    }
}