用java编写一个类,该类有如下方法: public int f(int a,int b){ … //要求该方法返回a和b的最大公约数 } 再编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数。 要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。
时间: 2024-02-01 21:13:32 浏览: 64
```
public class MathUtil {
public int f(int a, int b) {
int min = Math.min(a, b);
int maxDivisor = 1;
for (int i = 2; i <= min; i++) {
if (a % i == 0 && b % i == 0) {
maxDivisor = i;
}
}
return maxDivisor;
}
}
public class MathUtilSub extends MathUtil {
@Override
public int f(int a, int b) {
int maxDivisor = super.f(a, b);
return a * b / maxDivisor;
}
}
public class Main {
public static void main(String[] args) {
MathUtil mathUtil = new MathUtil();
int maxDivisor = mathUtil.f(12, 18);
int minMultiple = new MathUtilSub().f(12, 18);
System.out.println("最大公约数:" + maxDivisor);
System.out.println("最小公倍数:" + minMultiple);
}
}
```
阅读全文