java《面向对象综合题》

(1)、定义一个接口IAssaultable(可攻击的),该接口有一个抽象方法attack()。

(2)、定义一个接口IMobile(可移动的),该接口有一个抽象方法move()。

(3)、定义一个抽象类Weapon,实现IAssaultable接口和IMobile接口,但并没有给出具体的实现方法。

(4)、定义3个类:Tank,Flighter,WarShip都继承自Weapon,分别用不同的方式实现Weapon类中的抽象方法。

(5)、写一个类Army,代表一支军队,这个类有一个属性是Weapon数组w(用来存储该军队所拥有的所有武器);该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。该类还提供一个方法addWeapon(Weapon wa),表示把参数wa所代表的武器加入到数组w中。在这个类中还定义两个方法attackAll()和moveAll(),让w数组中的所有武器攻击和移动。(提示:数组w中加入武器时,使用static关键字定义的变量,来记录索引位置信息)

(6)、写一个主方法去测试以上程序。(提示:Weapon w = new Tank())

public class Test{

    public static void main(String[] args) {

      Army army=new Army(1);

      Weapon w=new Tank();

      army.addWeapon(w);

      army.attackAll();

      army.moveAll();

    }

}



interface IAssaultable{

     public abstract void attack();

}

interface IMoible{

    public abstract void move();

}

abstract class Weapon implements IAssaultable,IMoible{



}

class Tank extends Weapon{



    @Override

    public void attack() {

        System.out.println("Tank开始攻击");

    }



    @Override

    public void move() {

        System.out.println("Tank开始移动");

    }

}

class Flighter extends Weapon{



    @Override

    public void attack() {

        System.out.println("Flighter开始攻击");

    }



    @Override

    public void move() {

        System.out.println("Flighter开始移动");

    }

}

class WarShip extends Weapon{



    @Override

    public void attack() {

        System.out.println("WarShip开始攻击");

    }



    @Override

    public void move() {

        System.out.println("WarShip开始移动");

    }

}

class Army{

    static int index=0;

    public Weapon[] w;

    public Army(int a){

        w = new Weapon[a];

    }

    public void addWeapon(Weapon wa){

        w[index]=wa;

        index++;

    }

    public void attackAll(){

        for (int i=0;i<w.length-1;i++){

            w[i].attack();

        }

    }

    public void moveAll(){

        for (int i=0;i<w.length-1;i++){

            w[i].move();

        }

    }

}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值