编写一个抽象类Calculate,这个类包含一个抽象方法count(),定义一个CommonDivser类和CommonPrime类,都继承自Calculate类,并重写count()方法,分别实现计算最大公约数和1-100的素数。定义一个测试类,包含有main()方法,在该方法中实例化CommonDivser对象和CommonPrime对象,并通过多态性(对象上传型),实现对count()方法的引用。
时间: 2024-02-17 13:04:54 浏览: 134
计算器的类
好的,下面是代码实现:
```java
// Calculate.java 抽象类
public abstract class Calculate {
public abstract int count();
}
```
```java
// CommonDivser.java 类
public class CommonDivser extends Calculate {
private int a;
private int b;
public CommonDivser(int a, int b) {
this.a = a;
this.b = b;
}
// 计算最大公约数
@Override
public int count() {
int temp;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}
}
```
```java
// CommonPrime.java 类
public class CommonPrime extends Calculate {
// 判断一个数是否为素数
private boolean isPrime(int num) {
if (num <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
// 计算1-100的素数
@Override
public int count() {
int count = 0;
for (int i = 2; i <= 100; i++) {
if (isPrime(i)) {
count++;
}
}
return count;
}
}
```
```java
// Test.java 测试类
public class Test {
public static void main(String[] args) {
Calculate cd = new CommonDivser(36, 24);
System.out.println("最大公约数为:" + cd.count());
Calculate cp = new CommonPrime();
System.out.println("1-100的素数个数为:" + cp.count());
}
}
```
运行结果如下:
```
最大公约数为:12
1-100的素数个数为:25
```
以上就是按照题目要求所编写的代码,希望能够帮助到你。
阅读全文