java编程做这个题综合运用继承,多态 集合 来做下面的问题

模拟一个军队作战,军队里面有各种兵,骑兵,步兵等等。。。每种兵的攻击敌人方式不一样
建立各种各样的兵 每种10个,至少3种,然后建立一个军官,军官也会上场去攻击敌人,但是军官
还有一种行为,就是发号,军官发号了,所有的兵,无论什么兵都去战场攻击敌人
最后程序运行效果就是一个军官开始发号,然后所有的士兵包括军官都去打仗,显示每个人攻击敌人的方式

第1个回答  推荐于2018-05-07
1.public abstract class Bing {
private String bingType;
public Bing(String bingType)
{
this.bingType=bingType;
}
public String getType()
{
return bingType;
}
abstract void atract();
}
class QiBing extends Bing{
public QiBing(String bingType) {
super(bingType);
}
@Override
void atract() {
System.out.println(this.getType()+"骑马拿刀砍人");
}
}
class BuiBing extends Bing{
public BuiBing(String bingType) {
super(bingType);
}
@Override
void atract() {
System.out.println(this.getType()+"拿刀砍人");
}
}
class GongBing extends Bing{
public GongBing(String bingType) {
super(bingType);
}
@Override
void atract() {
System.out.println(this.getType()+"拿剑射人");
}
}
interface Signal{
public void SendSignal();
}
class JuGuan extends Bing implements Signal{
public JuGuan(String bingType) {
super(bingType);
}
@Override
public void SendSignal() {
System.out.println("军官开始发进攻信号了");
}
@Override
void atract() {

}
}
2.

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

class DaZhang{
List<Bing> list=new ArrayList<Bing>();
public void addSiBing(Bing bing)
{
list.add(bing);
}
public void display()
{
Iterator<Bing> iterator=list.iterator();
while(iterator.hasNext())
{
iterator.next().atract();
}
}
}
public class Text {
public static void main(String[] args) {
DaZhang daZhang=new DaZhang();
JuGuan juGuan=new JuGuan("军官");
Bing b1=new QiBing("骑兵");
Bing b2=new QiBing("骑兵");
Bing b3=new QiBing("骑兵");
Bing b4=new BuiBing("步兵");
Bing b5=new BuiBing("步兵");
Bing b6=new BuiBing("步兵");
Bing b7=new GongBing("弓箭手");
Bing b8=new GongBing("弓箭手");
Bing b9=new GongBing("弓箭手");
Bing b10=new GongBing("弓箭手");
daZhang.addSiBing(b1);
daZhang.addSiBing(b2);
daZhang.addSiBing(b3);
daZhang.addSiBing(b4);
daZhang.addSiBing(b5);
daZhang.addSiBing(b6);
daZhang.addSiBing(b7);
daZhang.addSiBing(b8);
daZhang.addSiBing(b9);
daZhang.addSiBing(b10);
juGuan.SendSignal();
daZhang.display();
}
}
3.显示的结果:本回答被网友采纳
相似回答