用Java实现:LOL有很多英雄,比如盲僧,团战可以输,提莫必须死,盖伦,琴女。所有这些英雄,都有一些共同的状态,比如,他们都有名字,hp,护甲,移动速度等等。这样我们就可以设计一种东西,叫做类,代表英雄这样一种事物。请创建一个类: 英雄(Hero)。对应的状态: 名字(name), 血量(hp),护甲(armor),移动速度(moveSpeed)。为Hero增加一个抽象方法 attack,并且把Hero声明为abstract的。APHero(物理攻击),AMHero(魔法攻击),AMAPHero(物理和魔法攻击)是Hero的子类,继承了Hero的属性和方法。但是各自的攻击手段是不一样的,所以继承Hero类后,这些子类就必须提供不一样的attack方法实现。请实现三个子类的抽象方法,并进行运行。
时间: 2024-03-09 20:44:29 浏览: 159
游戏脚本-迅捷斥候-提莫.zip
下面是Java代码实现:
```java
// 英雄类
public abstract class Hero {
protected String name;
protected int hp;
protected int armor;
protected int moveSpeed;
public abstract void attack(); // 抽象方法
// 构造方法
public Hero(String name, int hp, int armor, int moveSpeed) {
this.name = name;
this.hp = hp;
this.armor = armor;
this.moveSpeed = moveSpeed;
}
}
// 物理攻击英雄类
public class APHero extends Hero {
public APHero(String name, int hp, int armor, int moveSpeed) {
super(name, hp, armor, moveSpeed);
}
@Override
public void attack() {
System.out.println(name + " 发动了物理攻击!");
}
}
// 魔法攻击英雄类
public class AMHero extends Hero {
public AMHero(String name, int hp, int armor, int moveSpeed) {
super(name, hp, armor, moveSpeed);
}
@Override
public void attack() {
System.out.println(name + " 发动了魔法攻击!");
}
}
// 物理和魔法攻击英雄类
public class AMAPHero extends Hero {
public AMAPHero(String name, int hp, int armor, int moveSpeed) {
super(name, hp, armor, moveSpeed);
}
@Override
public void attack() {
System.out.println(name + " 发动了物理和魔法攻击!");
}
}
// 测试类
public class Test {
public static void main(String[] args) {
Hero hero1 = new APHero("盲僧", 100, 50, 300);
Hero hero2 = new AMHero("提莫", 80, 20, 350);
Hero hero3 = new AMAPHero("盖伦", 120, 80, 280);
hero1.attack();
hero2.attack();
hero3.attack();
}
}
```
输出结果为:
```
盲僧 发动了物理攻击!
提莫 发动了魔法攻击!
盖伦 发动了物理和魔法攻击!
```
阅读全文