抽象类和接口-练习

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一题:
1,定义一个接口Assaultable(可攻击的),该接口有一个抽象方法attack()。
2,定义一个接口Mobile(可移动的),该接口有一个抽象方法move()。
3,定义一个抽象类Weapon,实现Assaultable接口,但并没有给出方法的具体实现。
4,定义3个类:Tank,Flighter,MissileTurret都继承自Weapon,分别给出attack()方法的不同实现。Tank和Flighter类还实现了Mobile接口,也给出了move()方法的不同实现。
5,写一个类Army,代表一支军队,这个类有一个属性Weapon数组w(用来存储该军队所拥有的所有武器);该类还提供一个构造方法,在构造方法里通过传一个int类型的参数来限定该类所能拥有的最大武器数量,并用这一大小来初始化数组w。该类还提供一个方法addWeapon(Weapon wa),表示把参数wa所代表的武器加入到数组w中。在这个类中还定义两个方法attackAll()让w数组中的所有武器攻击;以及moveAll()让w数组中的所有可移动的武器移动。
6,写一个主方法去测试以上程序。



第二题:
使用面向对象的思想设计一个即时战略游戏的类结构
主要类和接口如下:
1,人口类(Person 抽象类)实现可移动接口,可攻击接口和有生命的接口。
属性:生命值(lifeValue),攻击力(attackPower),占用供给数(needSupportting),消耗资源数(needResource)
子类:
工兵(Sapper 扩展方法:创建建筑,采集资源)
机枪兵(GunMan)
护士(Nurse 扩展方法: 疗伤(cure))

2,建筑类(Construction 抽象类)实现有生命的接口
属性:生命值,消耗资源,
子类:
指挥中心(CommandCenter):创建农民
兵营(Barracks):创建机枪兵
供应站(SupporttingPort):final static int MAX_SUPPORTTING //能供应的供给数

3,玩家类(Player)
属性:玩家名称,玩家最大人口数,玩家当前人口数,玩家资源值,
玩家所拥有的人口对象,玩家所拥有的建筑对象。

4,可移动的接口(Mobile)
方法:move();

5,可攻击的接口(Attackable)
方法:attack(LifeThing th);

6,有生命的接口(LifeThing):标记接口,没有任何方法。实现该接口的对象可以被攻击。

在主方法中测试以上程序(创建2个玩家,分别生成人口和建筑,并进攻对方)


相关文档
最新文档