接口作为成员变量类型

英雄施放技能示例:

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

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