diff --git a/day11/src/com/inmind/class_interface04/Demo05.java b/day11/src/com/inmind/class_interface04/Demo05.java index c9cc7d9..26a6156 100644 --- a/day11/src/com/inmind/class_interface04/Demo05.java +++ b/day11/src/com/inmind/class_interface04/Demo05.java @@ -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(); + } } diff --git a/day11/src/com/inmind/class_interface04/Hero.java b/day11/src/com/inmind/class_interface04/Hero.java index 54dcbc6..6964414 100644 --- a/day11/src/com/inmind/class_interface04/Hero.java +++ b/day11/src/com/inmind/class_interface04/Hero.java @@ -8,7 +8,8 @@ public class Hero { private Weapon weapon;//武器 private Armor armor;//防御装 private ArrayList 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(); + } } diff --git a/day11/src/com/inmind/class_interface04/Skill.java b/day11/src/com/inmind/class_interface04/Skill.java new file mode 100644 index 0000000..ab95676 --- /dev/null +++ b/day11/src/com/inmind/class_interface04/Skill.java @@ -0,0 +1,5 @@ +package com.inmind.class_interface04; +//技能接口 +public interface Skill { + void outSkill(); +}