JAVA 面向对象 鸡兔同笼 代码
时间: 2023-07-03 22:31:29 浏览: 47
以下是一个简单的 Java 代码实现鸡兔同笼问题:
Animal.java
```java
public abstract class Animal {
protected int legs; // 脚的数量
protected int heads; // 头的数量
public Animal(int legs, int heads) {
this.legs = legs;
this.heads = heads;
}
public abstract void calculate(); // 抽象方法,计算动物的数量
}
```
Chicken.java
```java
public class Chicken extends Animal {
public Chicken(int legs, int heads) {
super(legs, heads);
}
@Override
public void calculate() {
int chickenCount = 0;
int rabbitCount = 0;
for (int i = 0; i <= heads; i++) {
int j = heads - i;
if (i * 2 + j * 4 == legs) {
chickenCount = i;
rabbitCount = j;
break;
}
}
System.out.println("鸡的数量为:" + chickenCount);
}
}
```
Rabbit.java
```java
public class Rabbit extends Animal {
public Rabbit(int legs, int heads) {
super(legs, heads);
}
@Override
public void calculate() {
int chickenCount = 0;
int rabbitCount = 0;
for (int i = 0; i <= heads; i++) {
int j = heads - i;
if (i * 2 + j * 4 == legs) {
chickenCount = i;
rabbitCount = j;
break;
}
}
System.out.println("兔子的数量为:" + rabbitCount);
}
}
```
Main.java
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入鸡兔总的脚数:");
int legs = scanner.nextInt();
System.out.println("请输入鸡兔总的头数:");
int heads = scanner.nextInt();
Chicken chicken = new Chicken(legs, heads);
Rabbit rabbit = new Rabbit(legs, heads);
chicken.calculate();
rabbit.calculate();
}
}
```
这里使用了抽象类 Animal 来定义共有的属性和方法,而鸡类 Chicken 和兔子类 Rabbit 继承了 Animal 类,并重写了 calculate() 方法。在 Main 类中,读取用户输入的数据,创建 Chicken 和 Rabbit 对象,并调用它们的 calculate() 方法来计算鸡和兔子的数量。