接口作爲成員變量類型

英雄施放技能示例:

//技能接口 
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();
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章