Java_接口与类之间继承例题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(); } }