编写一个类,该类有如下方法:。 public int f(inta.int b) {+ .. //要求该方法返回a和b的最大公约数+ } 再编写一个该类的子类,要求子类重写方法f0.而且重写的方法将返回两个整数的最小公倍数。+ 要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f0计算两个正整数的最大公约数和最小公倍数。
时间: 2024-02-09 20:12:41 浏览: 87
在cn.com.my包中,封装一个接口Sortable,包括一个抽象方法int compare( Sortable s),表示需要进行比较大小
可以按照如下的代码实现:
```
public class MathUtil {
public int f(int a, int b) {
if (b == 0) {
return a;
} else {
return f(b, a % b);
}
}
}
public class LCMUtil extends MathUtil {
@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) {
MathUtil mathUtil = new MathUtil();
int gcd = mathUtil.f(12, 18);
System.out.println("12和18的最大公约数是:" + gcd);
LCMUtil lcmUtil = new LCMUtil();
int lcm = lcmUtil.f(12, 18);
System.out.println("12和18的最小公倍数是:" + lcm);
}
}
```
我们定义了一个名为`MathUtil`的类,其中有一个`f`方法来计算两个整数的最大公约数。然后我们又定义了一个名为`LCMUtil`的子类,重写了`f`方法来计算两个整数的最小公倍数。在子类中,我们使用了`super.f`来调用父类中的`f`方法,从而获得两个整数的最大公约数,然后再根据最大公约数计算出最小公倍数。
在主类`Main`中,我们分别创建了`MathUtil`和`LCMUtil`的对象,然后调用它们的`f`方法来计算最大公约数和最小公倍数,并将结果打印到控制台上。
阅读全文