这个怎么传递参数进去啊

工厂设计模式:定义一个抽象类Fighter,包含有一个抽象方法beat()。定义三个类ChinaFighter、AmericanFighter和JPFighter继承Fighter类,在三个子类中重写beat()方法。定义一个FighterFactory类,在该类中写一个getFighter()方法,该方法根据传递进来的参数类型是China、American或其他的对应产生ChinaFighter、AmericanFighter和JPFighter类的实例对象。最后编写一个包含main()的测试类,在main()中根据不同的输入的字符串(China、American或其他)得到不同的Fighter,并调用其beat()方法。

抽象类Fighter

public abstract class Fighter {
    public abstract void beat();
}

ChinaFighter

public class ChinaFighter extends Fighter{
    @Override
    public void beat() {
        System.out.println("China的Beat方法执行");
    }
}

AmericanFighter

public class AmericanFighter extends Fighter{
    @Override
    public void beat() {
        System.out.println("American的Beat方法执行");
    }
}

JPFighter

public class JPFighter extends Fighter{
    @Override
    public void beat() {
        System.out.println("Jp的Beat方法执行");
    }
}

工厂类FighterFactory

public class FighterFactory {

    public static Fighter getFighter(String arg) {
        switch (arg) {
            case "China":
                return new ChinaFighter();
            case "American":
                return new AmericanFighter();
            case "Japan":
                return new JPFighter();
        }

        return null;
    }
}

测试类

public class test {

    public static void main(String[] args) {
        Fighter fighter = FighterFactory.getFighter("China");
        if(fighter==null){
            //没有找到的操作
            return;
        }
        fighter.beat();
    }
}

打印结果

China的Beat方法执行

Process finished with exit code 0

希望能帮到你

在哪里传递参数?在main中吗,直接调用FighterFactory的getFighter()方法不就行了