day11-接口作为成员变量类型(skill)

This commit is contained in:
2026-07-28 14:13:13 +08:00
parent 0d1d53cc68
commit ff8c0840aa
3 changed files with 33 additions and 1 deletions
@@ -28,5 +28,17 @@ public class Demo05 {
hero.defend();
System.out.println("打怪结束");
hero.showWeapons();
//掉落了技能书(匿名内部类)
Skill skill = new Skill() {
@Override
public void outSkill() {
System.out.println("释放天火燎原");
}
};
//英雄获取技能
hero.setSkill(skill);
//释放技能
hero.useSkill();
}
}
@@ -8,7 +8,8 @@ public class Hero {
private Weapon weapon;//武器
private Armor armor;//防御装
private ArrayList<Weapon> weapons = new ArrayList<>();//武器背包
//技能
//技能作为属性
private Skill skill;
public Hero() {
@@ -56,6 +57,14 @@ public class Hero {
this.weapons = weapons;
}
public Skill getSkill() {
return skill;
}
public void setSkill(Skill skill) {
this.skill = skill;
}
//攻击和防御行为
public void attack(){
//哪个英雄,使用什么武器,输出了多少伤害
@@ -75,4 +84,10 @@ public class Hero {
System.out.println(w.getName()+", ");
}
}
//英雄释放技能
public void useSkill(){
System.out.println(this.name += "释放技能:");
this.skill.outSkill();
}
}
@@ -0,0 +1,5 @@
package com.inmind.class_interface04;
//技能接口
public interface Skill {
void outSkill();
}