From ff8c0840aac7b575e2bea44c0e67fadb721adbcf Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 28 Jul 2026 14:13:13 +0800 Subject: [PATCH] =?UTF-8?q?day11-=E6=8E=A5=E5=8F=A3=E4=BD=9C=E4=B8=BA?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=8F=98=E9=87=8F=E7=B1=BB=E5=9E=8B(skill)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/inmind/class_interface04/Demo05.java | 12 ++++++++++++ .../src/com/inmind/class_interface04/Hero.java | 17 ++++++++++++++++- .../src/com/inmind/class_interface04/Skill.java | 5 +++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 day11/src/com/inmind/class_interface04/Skill.java 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(); +}