3.编写一个类,该类有如下方法:4 public int f(int a.int b)(u //要求该方法返回a和b的最大公约数心 再编写一个该类的子类,要求子类重写方法f),而且重写的方法将返回两个整数的最小公倍数。+要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回:在应用的程序的主类中分别德用众蕊和子类创建对象,并分别调用方法f)计算两个正整数的最大公约数和最小公倍数。
时间: 2024-02-10 11:10:47 浏览: 120
下面是代码实现:
```java
public class GCD_LCM {
public int f(int a, int b) {
int m = gcd(a, b);
return m;
}
private int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
}
public class LCM extends GCD_LCM {
@Override
public int f(int a, int b) {
int m = super.f(a, b);
return (a * b) / m;
}
}
public class Main {
public static void main(String[] args) {
int a = 12;
int b = 18;
GCD_LCM gcdLcm = new GCD_LCM();
LCM lcm = new LCM();
int gcd = gcdLcm.f(a, b);
int lcme = lcm.f(a, b);
System.out.println("最大公约数:" + gcd);
System.out.println("最小公倍数:" + lcme);
}
}
```
以上代码中,GCD_LCM 类实现了求两个整数的最大公约数的方法 f,并且使用了递归的方式实现了求最大公约数的功能;LCM 类继承了 GCD_LCM 类,并重写了方法 f,实现了求两个整数的最小公倍数的功能,并在其中调用了父类的方法 f,得到了最大公约数的值。Main 类中,我们创建了 GCD_LCM 和 LCM 两个对象,分别调用了它们的方法 f,并输出了结果。
阅读全文