实验目的:接口回调是多态的一种体现,本实验就是掌握接口回调
Commander.java(接口):
public interface Commander {//接口
public void battle(String mess);
}
LeaderHeader.java:
public class LeaderHeader {//负责创建司令部
String battleContent;//作战内容
public void giveCommand(Commander com){//下达命令
com.battle(battleContent);//接口回调
}
public void setBattleContent(String s){
battleContent=s;
}
}
LvZhang.java(实现接口Commander的类):
class LvZhang implements Commander {
final int MAXSoldierNumber=800;//最大人数
int soldierNumber=1;//人数
String name;
LvZhang(String s){//构造方法
name =s;
}
public void battle(String mess){//重写接口方法
System.out.println(name+"接到作战命令:"+mess);
System.out.println(name+"指派"+soldierNumber+"人参与作战");
System.out.println(name+"保证完成任务");
}
void setSoldierNumber(int m){//设置人数
if(m>MAXSoldierNumber){
soldierNumber=MAXSoldierNumber;
}
else if(m0){
soldierNumber=m;
}
}
}
ShiZhang.java(实现接口Commander的类):
class ShiZhang implements Commander{
final int MAXSoldierNumber=1000;
int soldierNumber=1;
String name;
ShiZhang(String s){
name=s;
}
public void battle(String mess){
System.out.println(name+"接到作战命令:"+mess);
System.out.println(name+"指派"+soldierNumber+"人参与作战");
System.out.println(name+"保证完成任务");
}
void setSoldierNumber(int m){
if(m>MAXSoldierNumber){
soldierNumber=MAXSoldierNumber;
}
else if(m0){
soldierNumber=m;
}
}
}
A.class(主类):
public class A {
public static void main(String[] args) {//主类
LeaderHeader leader=new LeaderHeader();
ShiZhang oneShi=new ShiZhang("第一师");//实例化对象
oneShi.setSoldierNumber(986);
leader.setBattleContent("进攻北城");
leader.giveCommand(oneShi);//参数部分相当于Commander com=new ShiZhang(),leader可以调用重写的接口方法,实现接口回调
LvZhang oneLv=new LvZhang("第一旅");
oneLv.setSoldierNumber(567);
leader.setBattleContent("在2号公路阻击敌人");
leader.giveCommand(oneLv);
}
}