java编写一个类返回a和b的最大公约数,再编写一个该类的子类,要求子类重写方法f(),而且重写的方法将返回两个整数的最小公倍数要求:在重写的方法的方法体中首先调用被隐藏的方法返回a和b的最大公约数m,然后将(a*b)/m返回;在应用的程序的主类中分别使用父类和子类创建对象,并分别调用方法f()计算两个正整数的最大公约数和最小公倍数。
时间: 2023-07-15 21:15:10 浏览: 116
父类代码如下:
```java
public class GCD {
private int a;
private int b;
public GCD(int a, int b) {
this.a = a;
this.b = b;
}
public int gcd() {
int m = Math.min(a, b);
while (m > 1) {
if (a % m == 0 && b % m == 0) {
return m;
}
m--;
}
return 1;
}
public int f() {
return gcd();
}
}
```
子类代码如下:
```java
public class LCM extends GCD {
public LCM(int a, int b) {
super(a, b);
}
public int f() {
int m = super.gcd();
return a * b / m;
}
}
```
在主类中使用父类和子类分别计算两个正整数的最大公约数和最小公倍数的示例代码如下:
```java
public class Main {
public static void main(String[] args) {
int a = 12;
int b = 18;
GCD gcd = new GCD(a, b);
System.out.println("最大公约数:" + gcd.f());
LCM lcm = new LCM(a, b);
System.out.println("最小公倍数:" + lcm.f());
}
}
```
输出结果如下:
```
最大公约数:6
最小公倍数:36
```
阅读全文