Java_接口与类之间继承例题

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

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

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

3,定义一个抽象类Weapon,实现Assaultable接口和Mobile接口,但并没有给出具体的

实现方法。

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

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

6,写一个主方法去测试以上程序。

interface Assaultable{//可攻击的

void attack();

}

interface Mobile{//可移动的

void move();

}

abstract class Weapon implements Assaultable,Mobile {

public void attack(){}

public void move(){}

}

class Tank extends Weapon{

public void attack(){

System.out.println("坦克攻击");

}

public void move(){

System.out.println("坦克移动");

}

}

class Flighter extends Weapon{

public void attack(){

System.out.println("战斗机攻击");

}

public void move(){

System.out.println("战斗机移动");

}

}

class Warship extends Weapon{

public void attack(){

System.out.println("战船攻击");

}

public void move(){

System.out.println("战船移动");

}

}

class Army{

Weapon[] w;

int max;

int j=0;

public int getMax() {

return max;

}

public void setMax(int max) {

this.max = max;

}

public Army(int max){

w= new Weapon[max];

this.max=max;

System.out.println("您最多拥有"+max+"个武器") ;

}

public void addWeapon(Weapon wa){

if(j

System.out.println("武器库足够!"+"已增加"+(j+1)+"个武器");

w[j]=wa;

j++;

}

else{

System.out.println("警告:武器库已满不能增加武器");

}

}

public void attackAll(){

System.out.println();

System.out.println("所有武器准备战斗");

for(int i=0;i

System.out.print((i+1)+"号");

w[i].attack();

}

}

public void moveAll(){

System.out.println();

System.out.println("所有武器准备移动");

for(int i=0;i

System.out.print((i+1)+"号");

w[i].move();

}

}

}

public class Test1 {

public static void main(String[] args){

Army a = new Army(4);

a.addWeapon(new Tank());

a.addWeapon(new Flighter());

a.addWeapon(new Warship());

a.addWeapon(new Warship());

a.addWeapon(new Warship());

a.moveAll();

a.attackAll();

}

}

相关文档
最新文档