英雄(IHero)接口、刺客(Assassin)类、战士(Warrior)类、游戏(Game)类,并在Main类中创建测试对象,输出正确的结果。
时间: 2024-02-01 17:02:43 浏览: 20
好的,以下是相应的实现:
```java
// 英雄接口
interface IHero {
void attack();
}
// 刺客类
class Assassin implements IHero {
@Override
public void attack() {
System.out.println("刺客使用匕首攻击");
}
}
// 战士类
class Warrior implements IHero {
@Override
public void attack() {
System.out.println("战士使用大刀攻击");
}
}
// 游戏类
class Game {
private IHero hero;
public Game(IHero hero) {
this.hero = hero;
}
public void play() {
hero.attack();
}
}
public class Main {
public static void main(String[] args) {
IHero assassin = new Assassin();
IHero warrior = new Warrior();
Game game1 = new Game(assassin);
Game game2 = new Game(warrior);
game1.play(); // 输出:刺客使用匕首攻击
game2.play(); // 输出:战士使用大刀攻击
}
}
```
在上述代码中,我们定义了一个 `IHero` 接口,其中有一个 `attack` 方法。然后我们分别实现了 `Assassin` 和 `Warrior` 两个类,并且都实现了 `IHero` 接口中的 `attack` 方法。最后我们定义了一个 `Game` 类,其中有一个 `play` 方法,用来调用英雄的 `attack` 方法。在 `Main` 类中,我们创建了一个 `Assassin` 对象和一个 `Warrior` 对象,并用它们各自实例化了一个 `Game` 对象,最后调用它们的 `play` 方法来输出正确的结果。
输出结果:
```
刺客使用匕首攻击
战士使用大刀攻击
```