英雄施放技能示例:
//技能接口
public interface Skill {
void use(); //施放技能的抽象方法
}
//英雄類 把接口當作成員變量類型
public class Hero {
private String name; //英雄的名稱
private Skill skill; //英雄的技能
public void attack() {
System.out.println("我是" + name + "開始施放技能:");
skill.use();
System.out.println("施放技能結束");
}
public Hero() {
}
public Hero(String name, Skill skill) {
this.name = name;
this.skill = skill;
}
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;
}
}
//實現類
public class PlayGame {
public static void main(String[] args) {
Hero hero = new Hero();
hero.setName("百里守約");
hero.setSkill(new Skill() { // 這裏可用三種方法來寫
//這裏用的是最簡便的一種
//既是匿名對象和匿名內部類
@Override
public void use() {
System.out.println("WO WO WO WO WO ");
}
});
hero.attack();
}
}