接口回调技术
fightCommand.java
public interface fightCommand{
public void battle(String mess);
}
class LeaderHeader{
String battleContent;
public void giveCommand(fightCommand com) {
com.battle(battleContent);
}
public void setBattleContext(String s) {
battleContent = s;
}
}
class ShiZhang implements fightCommand{
final int MAXSoildierNumber = 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>MAXSoildierNumber) {
soldierNumber=MAXSoildierNumber;
}
else if(m<MAXSoildierNumber){
soldierNumber=m;
}
}
}
class LvZhang implements fightCommand{
final int MAXSoildierNumber=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>MAXSoildierNumber) {
soldierNumber=MAXSoildierNumber;
}
else if(m<MAXSoildierNumber){
soldierNumber=m;
}
}
}
MainClass.java
public class MainClass{
public static void main(String args[]) {
LeaderHeader leader = new LeaderHeader();
ShiZhang oneshi = new ShiZhang("第一师");
oneshi.setSoldierNumber(986);
leader.setBattleContext("进攻北城");
leader.giveCommand(oneshi);
LvZhang oneLv = new LvZhang("第一旅");
oneLv.setSoldierNumber(567);
leader.setBattleContext("在二号公路狙击敌人");
leader.giveCommand(oneLv);
}
}