(1)定义一个抽象类Weapon,该抽象类有两个抽象方法attack(),move() 这两个方法分别表示武器的攻击方式和移动方式。 (2)定义3个类:Tank,Flighter,WarShip都继承自Weapon, 分别用不同的方式实现Weapon类中的抽象方法。 编写测试程序main方法,创建多个不同武器的实例。并分别调用attack()和move()方法。 能用多态尽量使用多态。
时间: 2024-04-01 13:37:52 浏览: 101
好的,以下是代码示例:
```java
public abstract class Weapon {
public abstract void attack();
public abstract void move();
}
public class Tank extends Weapon {
@Override
public void attack() {
System.out.println("坦克使用炮弹攻击");
}
@Override
public void move() {
System.out.println("坦克使用履带移动");
}
}
public class Fighter extends Weapon {
@Override
public void attack() {
System.out.println("战斗机使用导弹攻击");
}
@Override
public void move() {
System.out.println("战斗机使用喷气式引擎飞行");
}
}
public class WarShip extends Weapon {
@Override
public void attack() {
System.out.println("战舰使用鱼雷攻击");
}
@Override
public void move() {
System.out.println("战舰使用螺旋桨航行");
}
}
public class Main {
public static void main(String[] args) {
Weapon[] weapons = new Weapon[3];
weapons[0] = new Tank();
weapons[1] = new Fighter();
weapons[2] = new WarShip();
for (Weapon weapon : weapons) {
weapon.attack();
weapon.move();
System.out.println("----------------");
}
}
}
```
在上面的代码中,我们创建了抽象类 Weapon,并在其中定义了抽象方法 attack() 和 move()。然后我们创建了三个类 Tank、Fighter 和 WarShip,它们都继承了 Weapon 并实现了其抽象方法。最后,在 main 方法中,我们创建了一个 Weapon 类型的数组,并在其中存储了不同类型的武器实例。然后我们使用 for 循环遍历该数组,并分别调用每个实例的 attack() 和 move() 方法。
这里我们使用了多态的方式,因为 Weapon 类型的数组可以存储不同类型的实例,而在调用方法时会根据实例的实际类型来调用对应的方法。
阅读全文