package demo04;
public class Hero {
private String name;
private Skill skill;
public Hero() {
}
public Hero(String name, Skill skill) {
this.name = name;
this.skill = skill;
}
public void attact(){
System.out.println("我叫"+name+"用技能攻击敌方");
skill.use();
System.out.println("攻击成功");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Skill getSkill() {
return skill;
}
public void setSkill(Skill skill) {
this.skill = skill;
}
}
package demo04;
public interface Skill {
void use();
}
package demo04;
public class SkillImpl implements Skill {
@Override
public void use() {
System.out.println("可以打怪");
}
}
package demo04;
public class DemoMain {
public static void main(String[] args) {
Hero hero=new Hero();
hero.setName("花花");
SkillImpl skill=new SkillImpl();
System.out.println(hero.getName());
skill.use();
System.out.println("----------");
hero.setSkill(new Skill() {
@Override
public void use() {
System.out.println("升级了");
}
});
hero.attact();
}
}