设计一个游戏人物抽象类role,急

java设计一个游戏人物抽象类Role,该类有两个字段,一个方法具体如下图,

img

游戏物抽象类

public abstract class Role {
    protected int strongth; // 力量
    protected int intelligence; // 智力

    abstract double attack(); //攻击
}

战士类

public class Warrolr extends Role {
    public Warrolr(int strongth, int intelligence) {
        this.strongth = strongth;
        this.intelligence = intelligence;
    }

    @Override
    double attack() {
        return strongth * 1.5;
    }
}

法师类

public class Mage extends Role{
    public Mage(int strongth, int intelligence) {
        this.strongth = strongth;
        this.intelligence = intelligence;
    }

    @Override
    double attack() {
        return intelligence * 2;
    }
}

测试类

public class Demo {
    public static void main(String[] args) {
        Warrolr w = new Warrolr(100, 60);
        Mage m = new Mage(60, 100);

        System.out.println("战士攻击造成的伤害:" + w.attack());
        System.out.println("法师攻击造成的伤害:" + m.attack());
    }
}

测试结果:
战士攻击造成的伤害:150.0
法师攻击造成的伤害:200.0

  • 这篇博客也许可以解决你的问题👉 :java ——定义一个抽象的"Role"类,有姓名,年龄,性别等成员变量.
  • 除此之外, 这篇博客: 实现员工信息管理系统中的 Role.java:角色实体类 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 一个角色对应多个权限,创建一个权限的集合,以便查询角色对应的权限

    package enity;
    
    import java.util.List;
    
    public class Role {
    	private Integer roleid;
    	private String rolename;
    	//一个角色对应多个权限,创建一个权限的集合,以便查询角色对应的权限
    	private List<Privilege> privileges;
    	public Integer getRoleid() {
    		return roleid;
    	}
    	public void setRoleid(Integer roleid) {
    		this.roleid = roleid;
    	}
    	public String getRolename() {
    		return rolename;
    	}
    	public void setRolename(String rolename) {
    		this.rolename = rolename;
    	}
    	public List<Privilege> getPrivileges() {
    		return privileges;
    	}
    	public void setPrivileges(List<Privilege> privileges) {
    		this.privileges = privileges;
    	}
    	public Role(Integer roleid, String rolename, List<Privilege> privileges) {
    		super();
    		this.roleid = roleid;
    		this.rolename = rolename;
    		this.privileges = privileges;
    	}
    	public Role() {
    		super();
    	}
    	@Override
    	public String toString() {
    		return "Role [roleid=" + roleid + ", rolename=" + rolename+ ", privileges=" + privileges + "]";
    	}
    }
    
  • 以下回答由chatgpt基于相关博客总结生成:

    根据参考资料和要求,设计一个抽象类Role,包含姓名(name),年龄(age),性别(sex)等字段,以及play()抽象方法。角色类Role应该尽量隐藏所有变量(能够私有就私有,能够保护就不要公有),并通过getXXX()和setXXX()方法对变量进行读写。同样提供至少两个构造方法,并体现出this的多种用法。Employee类派生自Role类,增加salary成员变量和静态成员变量“职工编号(id)”,扩展两个构造方法,同时覆盖play()方法,并提供一个final sing()方法。Manager类继承自Employee类,增加一个final成员变量vehicle,并进行测试。

    abstract class Role {
        private String name;
        protected int age;
        private String sex;
    
        public Role() {
            System.out.println("Role 的无参构造");
        }
    
        public Role(String name, int age, String sex) {
            this.name = name;
            this.age = age;
            this.sex = sex;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setSex(String sex) {
            this.sex = sex;
        }
    
        public String getSex() {
            return sex;
        }
    
        abstract void play();
    }
    
    class Employee extends Role {
        private int salary;
        private static int id;
    
        public Employee() {
            System.out.println("Employee的无参构造");
        }
    
        public Employee(String name, int age, String sex, int salary, int id) {
            super(name, age, sex);
            this.salary = salary;
            Employee.id = id;
        }
    
    
        public final void Sing() {
            System.out.println(getName() + "在开心的唱歌!!!");
        }
    
        void play() {
            System.out.println(getName() + "在玩游戏");
        }
    
        public void setSalary(int salary) {
            this.salary = salary;
        }
    
        public int getSalary() {
            return salary;
        }
    }
    
    class Manager extends Employee {
        final String vehicle = "benchi";
    }
    
    public class Test {
        public static void main(String[] args) {
            Manager mana = new Manager();
            Employee empl1 = new Employee();
            System.out.println(mana.vehicle);
            Employee empl2 = new Employee("张三", 15, "男", 11111, 007);
            empl2.play();
            empl2.Sing();
        }
    }