设计几个传奇角色(道士,法师,武士),然后有个paly类,其中有一个方法,用来调用传入角色的行为,体现继承与多态Java
时间: 2023-11-29 07:04:23 浏览: 121
好的,我来为您演示一个例子。
首先,我们可以定义一个 `Role` 抽象类,其中包括所有角色的共有属性和方法,如下所示:
```java
public abstract class Role {
protected String name;
protected int level;
public Role(String name, int level) {
this.name = name;
this.level = level;
}
public abstract void action();
}
```
然后,我们可以定义三个角色类,分别继承 `Role` 抽象类并实现自己的 `action()` 方法,如下所示:
```java
public class Warrior extends Role {
public Warrior(String name, int level) {
super(name, level);
}
@Override
public void action() {
System.out.println("战士 " + name + " 发起攻击!");
}
}
public class Mage extends Role {
public Mage(String name, int level) {
super(name, level);
}
@Override
public void action() {
System.out.println("法师 " + name + " 施放火球术!");
}
}
public class Priest extends Role {
public Priest(String name, int level) {
super(name, level);
}
@Override
public void action() {
System.out.println("道士 " + name + " 施放治疗术!");
}
}
```
最后,我们可以创建一个 `Play` 类,其中包含一个方法 `play(Role role)`,用于调用传入角色的 `action()` 方法,如下所示:
```java
public class Play {
public void play(Role role) {
role.action();
}
}
```
最后,我们可以在主函数中创建不同类型的角色对象,并将它们传入 `Play` 类的 `play()` 方法中,体现继承与多态的特性:
```java
public class Main {
public static void main(String[] args) {
Role warrior = new Warrior("张三", 10);
Role mage = new Mage("李四", 20);
Role priest = new Priest("王五", 30);
Play play = new Play();
play.play(warrior);
play.play(mage);
play.play(priest);
}
}
```
这样,程序就能够输出每个角色的行动了:
```
战士 张三 发起攻击!
法师 李四 施放火球术!
道士 王五 施放治疗术!
```
以上就是一个简单的继承与多态的例子,演示了如何设计传奇角色并调用它们的行为。
阅读全文