两个接口 一个实现移动 一个实现攻击:
package com.Test.Demo.WuQiShuZu;
public interface GongJi {
public void gongJi();
}
package com.Test.Demo.WuQiShuZu;
public interface YiDong {
public void yiDong();
}
一个武器类:
package com.Test.Demo.WuQiShuZu;
public class WuQi {
private String name;
public WuQi(String name){
this.name=name;
}
public String getName(){
return this.name;
}
}
三个武器子类,分别实现不同的接口:
package com.Test.Demo.WuQiShuZu;
public class YunShuJi extends WuQi implements YiDong {
public YunShuJi(){
super("运输机");
}
public void yiDong(){
System.out.println("运输机在移动");
}
@Override
public String toString() {
return this.getName();
}
}
package com.Test.Demo.WuQiShuZu;
public class ZhanDouJi extends WuQi implements YiDong ,GongJi {
public ZhanDouJi(){
super("战斗机");
}
public void gongJi(){
System.out.println("战斗机在攻击");
}
public void yiDong(){
System.out.println("战斗机在移动");
}
@Override
public String toString() {
return this.getName();
}
}
package com.Test.Demo.WuQiShuZu;
public class GaoShePao extends WuQi implements GongJi{
public GaoShePao(){
super("高射炮");
}
public void gongJi() {
System.out.println("高射炮在攻击");
}
@Override
public String toString() {
return this.getName();
}
}
一个军队类:
package com.Test.Demo.WuQiShuZu;
public class JunDui {
private int len;
private int cnt;
private WuQi[] wuQi;
public JunDui(int len){
this.len=len;
this.wuQi=new WuQi[len];
}
public void addWuQi(WuQi wuQi)throws Exception{
if(cnt==this.len){
throw new AddWuex("武器数量达到上限!!!");
}
System.out.println(wuQi+"增加成功");
this.wuQi[cnt++]=wuQi;
}
public void ggg(){
for(int i=0;i<this.cnt;i++){
if(this.wuQi[i] instanceof GongJi){
GongJi pao=(GongJi) this.wuQi[i];//此处把类强转为了接口!
pao.gongJi();
}
}
}
public void yyy(){
for(int i=0;i<this.cnt;i++){
if(this.wuQi[i] instanceof YiDong){
YiDong pao=(YiDong) this.wuQi[i];//此处把类强转为了接口!
pao.yiDong();
}
}
}
}
一个自定义的异常,用于增加武器时抛出:
package com.Test.Demo.WuQiShuZu;
public class AddWuex extends Exception{//自定义的异常类
public AddWuex(){
}
public AddWuex(String tt){
super(tt);
}
}
一个测试类:
package com.Test.Demo.WuQiShuZu;
public class Test {
public static void main(String args[]){
JunDui junDui =new JunDui(3);
try{
junDui.addWuQi(new GaoShePao());
junDui.addWuQi(new YunShuJi());
junDui.addWuQi(new ZhanDouJi());
junDui.addWuQi(new ZhanDouJi());
}catch (Exception e){
System.out.println(e.getMessage());
}
junDui.ggg();
junDui.yyy();
}
}
程序执行结果:
高射炮增加成功
运输机增加成功
战斗机增加成功
武器数量达到上限!!!
高射炮在攻击
战斗机在攻击
运输机在移动
战斗机在移动