美文网首页
6.10 接口作为成员变量类型

6.10 接口作为成员变量类型

作者: 十六只猴子王 | 来源:发表于2019-03-28 17:39 被阅读0次
    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();
        }
    }
    

    相关文章

      网友评论

          本文标题:6.10 接口作为成员变量类型

          本文链接:https://www.haomeiwen.com/subject/yuscbqtx.html