Java引用类型interface

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

Java引用类型interface

共饮一杯无   2022-10-20 我要评论

interface作为成员变量

接口是对方法的封装,对应游戏当中,可以看作是扩展游戏角色的技能。所以,如果想扩展更强大技能,我们在 Role 中,可以增加接口作为成员变量,来设置不同的技能。

法术接口和实现

定义接口:

public interface Skill {

    /**
     * 释放技能的抽象方法
     * @param name 英雄
     * @param skillType 技能类型
     */
    void use(String name,String skillType);
}

public class SkillImpl implements Skill {
    @Override
    public void use(String name,String skillType) {
        System.out.println(name+"使用技能:---》"+skillType);
    }
}

英雄角色

定义角色类:

public class Hero {

    private String name; // 英雄的名称
    private Skill skill; // 英雄的技能

    public Hero() {
    }

    public Hero(String name, Skill skill) {
        this.name = name;
        this.skill = skill;
    }

    public void attack(String name,String skillType) {
        // 调用接口中的抽象方法
        skill.use(name,skillType);
    }

    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 DemoGame {

    public static void main(String[] args) {
        //创建英雄角色
        Hero hero = new Hero();
        // 设置英雄的名称
        hero.setName("五虎上将关羽"); 

        // 设置英雄技能(使用单独定义的实现类)
        //hero.setSkill(new SkillImpl()); 

        // 设置英雄技能(同时使用匿名内部类和匿名对象)
        hero.setSkill(new Skill() {
            @Override
            public void use(String name, String skillType) {
                System.out.println(name+"使用技能:---》"+skillType);
            }
        });
      

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们