java_1112

225339_SCgo_3716995.png

package org.jsoft.java_1112;

public abstract class Role {
    public String name;// 定义父类属性名

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public abstract int attack();// 父类抽象
}

package org.jsoft.java_1112;

public class Magicer extends Role {
    private int level;// 定义子类属性

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public Magicer(int level) {// 有参构造法师攻击值方法
        this.level = level;
    }

    public int attack() {// 子类重写父类方法
        return level * 5;
    }
}
 

package org.jsoft.java_1112;

public class Soldier extends Role {
    private int hurt;// 定义子类属性

    public int getHurt() {
        return hurt;
    }

    public void setHurt(int hurt) {
        this.hurt = hurt;
    }

    public Soldier(int hurt) {//构造战士攻击值方法
        this.hurt = hurt;
    }

    public int attack() {// 子类重写父类方法
        return hurt;
    }
}

package org.jsoft.java_1114;

public class Team {
    Role [] member=new Role [6];
    int x=0;//计数用的
    public void addMember(Role role){
        if(x<6){//计数到6就不再循环添加成员了
            for(int y=0;y<=member.length;y++){
                if(member[y]==null){//每一次新添加的成员
                    member[y]=role;//把成员添加到数组里
                    x++;
                    break;
            }
            }
    }
        else{
            System.out.println("本组成员已满");
        }
    }
    public int attackSum(){
        int sum=0;
        for(int a=0;a<x;a++){
            sum=sum+member[a].attack();
        }
        return sum;
    }
}
 

package org.jsoft.java_1112;

public class Test {
    public static void main(String[] args) {
        Role r = new Magicer(10);// 父类引用指向子类对象
        r.setName("法师1");
        Role r1 = new Soldier(11);// 父类引用指向子类对象
        r1.setName("战士2");
        Role r2 = new Magicer(12);// 父类引用指向子类对象
        r2.setName("法师3");
        Role r3 = new Soldier(13);// 父类引用指向子类对象
        r3.setName("战士4");
        Role r4 = new Magicer(14);// 父类引用指向子类对象
        r4.setName("法师5");
        Role r5 = new Soldier(15);// 父类引用指向子类对象
        r5.setName("战士6");
        System.out.println(r.getName() + "输出了" + r.attack() + "攻击值");
        System.out.println(r1.getName() + "输出了" + r1.attack() + "攻击值");
        System.out.println(r2.getName() + "输出了" + r2.attack() + "攻击值");
        System.out.println(r3.getName() + "输出了" + r3.attack() + "攻击值");
        System.out.println(r4.getName() + "输出了" + r4.attack() + "攻击值");
        System.out.println(r5.getName() + "输出了" + r5.attack() + "攻击值");
        Team t = new Team();//先有角色才有角色的攻击值
        t.addMember(r);
        t.addMember(r1);
        t.addMember(r2);
        t.addMember(r3);
        t.addMember(r4);
        t.addMember(r5);
        System.out.println("这个团队输出了" + t.attackSum() + "攻击值");
    }
}

224138_H4pK_3716995.png

转载于:https://my.oschina.net/u/3716995/blog/1572503

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值