package interface_memberVariable;
public class Hero {
private String name;//英雄名称
private Skill skill;//英雄技能
public Hero() {
}
public void attack(){
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 interface_memberVariable;
public interface Skill {
void use();//施放技能抽象方法
}
package interface_memberVariable;
public class SkillImpl implements Skill{
@Override
public void use() {
System.out.println("Biu~biu~biu");
}
}
package interface_memberVariable;
public class DemoGame {
public static void main(String[] args) {
Hero hero = new Hero();
hero.setName("艾希");//设置英雄的名称
//设置英雄技能
// 方法一 hero.setSkill(new SkillImpl());//使用单独定义的
// 方法二 话可以改变使用匿名内部类
/* Skill skill = new Skill() {
@Override
public void use() {
System.out.println("pia~pia~pia");
}
};
hero.setSkill(skill);*/
//方法三 进一步简化,同时使用匿名内部类和匿名对象
hero.setSkill(new Skill() {
@Override
public void use() {
System.out.println("pia~pia~bia~bia");
}
});
hero.attack();
}
}
网友评论