父类Role:
package org.jsoft.test1;
public abstract class Role {
private String name;
public abstract int attack();
Role() {
}
Role(String name) {
this.name = name;
}
String getName() {
return name;
}
void setName(String name) {
this.name = name;
}
}
子类:Soldier
package org.jsoft.test1;
public class Soldier extends Role {
private int hurt;
Soldier() {
}
Soldier(int hurt, String name) {
super(name);
this.hurt = hurt;
}
Soldier(int hurt) {
this.hurt = hurt;
}
int getHurt() {
return hurt;
}
void setHurt(int hurt) {
this.hurt = hurt;
}
@Override
public int attack() {
// TODO Auto-generated method stub
return this.hurt;
}
}
子类:Magicer
package org.jsoft.test1;
public class Magicer extends Role {
private int level;
Magicer() {
}
Magicer(int level) {
this.level = level;
}
int getLevel() {
return level;
}
void setLevel(int level) {
this.level = level;
}
Magicer(int level, String name) {
super(name);
this.level = level;
}
@Override
public int attack() {
// TODO Auto-generated method stub
return 5 * this.level;
}
}
独立队伍类:Team
package org.jsoft.test1;
public class Team {
static int i = 0;
private Role[] role = new Role[6];
int attactkSum() {
int sum = 0;
for (int j = 0; j < i; j++) {
sum += role[j].attack();
}
return sum;
}
void addMember(Role role) {
this.role[i++] = role;
}
}
测试类一 Test1
package org.jsoft.test1;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
while(true){
System.out.println("请输入您要创建的角色:1-战士 2-法师");
Soldier s1=new Soldier();
Magicer m1=new Magicer();
int i=in.nextInt();
if(i<1||i>2){System.out.println("您输入的选择有误,创建角色失败。");}
else if(i==1)
{System.out.println("成功创建战士");
System.out.println("请输入您的角色名");
String name=in.next();
s1.setName(name);
System.out.println("设置成功,您的角色名为:"+s1.getName());
System.out.println("请输入您的战士的伤害值:");
int h=in.nextInt();
s1.setHurt(h);
System.out.println("设置成功,战士的伤害值为:"+s1.attack());
}
else{
System.out.println("成功创建法师");
System.out.println("请输入您的角色名");
String name=in.next();
m1.setName(name);
System.out.println("设置成功,您的角色名为:"+m1.getName());
System.out.println("请输入您的法师的等级:");
int h=in.nextInt();
m1.setLevel(h);
System.out.println("设置成功,法师的伤害值为:"+m1.attack());
}
}
}
}
测试执行效果:
测试类二组队类 Test2
package org.jsoft.test1;
import java.util.Scanner;
public class Test2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Role role = new Soldier();
Team team = new Team();
while (true) {
System.out.println("组队功能开启" + '\n' + "1-增加组队队员" + '\n' + "2-发起攻击");
int i = in.nextInt();
if (i < 1 || i > 2) {
System.out.println("选择有误,请输入正确的选项。");
} else if (i == 1) {
System.out.println("请选择要增加的队员类型:1-战士 2-法师");
int j = in.nextInt();
if (j == 1) {
System.out.println("请输入您的战士的伤害数值");
int s = in.nextInt();
role = new Soldier(s);
team.addMember(role);
System.out.println("伤害数值设置成功");
continue;
} else {
System.out.println("请输入您的法师的等级");
int m = in.nextInt();
role = new Magicer(m);
team.addMember(role);
}
} else if (i == 2) {
System.out.println("发起攻击成功" + '\n' + "造成伤害:"
+ team.attactkSum());
}
}
}
}
测试效果: