练习-Java继承和多态之综合练习
时间: 2024-01-18 14:02:11 浏览: 191
java继承与多态教学及练习
4星 · 用户满意度95%
好的,让我们来进行一道综合练习。
假设我们正在设计一个游戏,游戏中有多种角色,每种角色都有自己的属性和行为。我们来考虑如何使用Java继承和多态来实现这个游戏。
首先,我们可以定义一个抽象类`Character`,表示所有角色的基类,其中包含角色的基本属性和方法:
```java
public abstract class Character {
protected String name; // 角色名
protected int level; // 等级
protected int health; // 生命值
protected int mana; // 法力值
public Character(String name, int level, int health, int mana) {
this.name = name;
this.level = level;
this.health = health;
this.mana = mana;
}
public abstract void attack(); // 攻击方法
public abstract void defend(); // 防御方法
// getter和setter方法
// ...
}
```
然后,我们可以定义具体的角色类,例如战士`Warrior`和法师`Mage`,它们分别继承自`Character`类,并实现自己的攻击和防御方法:
```java
public class Warrior extends Character {
private int strength; // 力量属性
public Warrior(String name, int level, int health, int mana, int strength) {
super(name, level, health, mana);
this.strength = strength;
}
@Override
public void attack() {
System.out.println("战士" + name + "使用大剑攻击敌人!");
}
@Override
public void defend() {
System.out.println("战士" + name + "使用盾牌防御敌人的攻击!");
}
// getter和setter方法
// ...
}
public class Mage extends Character {
private int intelligence; // 智力属性
public Mage(String name, int level, int health, int mana, int intelligence) {
super(name, level, health, mana);
this.intelligence = intelligence;
}
@Override
public void attack() {
System.out.println("法师" + name + "释放火球术攻击敌人!");
}
@Override
public void defend() {
System.out.println("法师" + name + "使用魔法盾防御敌人的攻击!");
}
// getter和setter方法
// ...
}
```
最后,我们可以在游戏中创建不同的角色对象,并进行攻击和防御操作:
```java
public class Game {
public static void main(String[] args) {
Character warrior = new Warrior("张三", 10, 100, 50, 20);
Character mage = new Mage("李四", 10, 80, 100, 30);
warrior.attack();
mage.defend();
}
}
```
以上就是一个简单的继承和多态的综合练习,通过这个例子,我们可以发现继承和多态能够很好地实现代码的复用和扩展。
阅读全文