import java.util.ArrayList; import java.util.List; public class Test { public static class Soldier { public void attack() { System.out.println("攻击"); } } public static class Infantry extends Soldier { @Override public void attack() { System.out.println("我是步兵,我用手枪攻击啦"); } } public static class Artillery extends Soldier { @Override public void attack() { System.out.println("我是炮兵,我用火炮攻击啦"); } } public static class Tank extends Soldier { @Override public void attack() { System.out.println("我是坦克,我用机枪攻击啦"); } } public static class Officer extends Soldier { private List<Soldier> soldiers; public List<Soldier> getSoldiers() { return soldiers; } public void setSoldiers(List<Soldier> soldiers) { this.soldiers = soldiers; } public void order() { for (Soldier s : soldiers) { s.attack(); } } @Override public void attack() { System.out.println("我是军官,我用军刀攻击啦"); } } public static void main(String[] args) { List<Soldier> soldiers = new ArrayList<>(); int infantryNum = 0; int artlleryNum = 0; int tankNum = 0; for (int i = 0; infantryNum <= 10 || artlleryNum <= 10 || tankNum <= 10; i++) { double randomNo = Math.random(); if (randomNo < 0.3) { soldiers.add(new Infantry()); infantryNum++; } else if (randomNo < 0.6) { soldiers.add(new Artillery()); artlleryNum++; } else { soldiers.add(new Tank()); tankNum++; } } Officer officer = new Officer(); officer.setSoldiers(soldiers); officer.attack(); officer.order(); } }
50,530
社区成员
85,608
社区内容
加载中
试试用AI创作助手写篇文章吧