士兵的战争)"/>
java多态的实例(模拟士兵的战争)
public class SoldierDemo
{public static void main(String [] args){Office f1=new Office("邹吉祥");f1.action();f1.callAllToAttack(); f1.callSomeToAttack(f1.getSoldier()[1]); }
} abstract class Soldier //抽象类;
{private String name; public Soldier(String name){this.name=name;}public String getName(){return name;}public void start(){System.out.println("准备开始......");}public void end(){System.out.println("准备结束......");}abstract public void attack(); //一旦一个类中有一个抽象方法,那么这个类就是抽象类//行动public void action(){start();attack();end();}
}class LandSoldier extends Soldier
{public LandSoldier(String name){super(name); //调用父类的构造方法;}public void attack(){System.out.println(getName()+"用步枪进行攻击");}
}class OceanSoldier extends Soldier
{public OceanSoldier(String name){super(name);}public void attack(){System.out.println(getName()+"用鱼雷进行攻击");}
}class Office extends Soldier
{private Soldier[] soldiers=new Soldier[2]; //定义Soldier类型的数组 public Office(String name){super(name);soldiers[0]=new LandSoldier("张三"); //用到了多态;soldiers[1]=new OceanSoldier("李四");}public void attack(){System.out.println(getName()+"用机关枪进行攻击");}public void callAllToAttack() {for(int i=0;i<soldiers.length;i++){soldiers[i].action();}}public void callSomeToAttack(Soldier s){s.action();}public Soldier[] getSoldier() //返回一个数组;{return soldiers;}}
更多推荐
java多态的实例(模拟士兵的战争)
发布评论