如何在Main类中调用FormenFabrik类的createForm方法?
如何在Main类中调用FormenFabrik的createForm方法
核心步骤
- 先实例化
FormenFabrik对象(因为createForm是实例方法,不能直接通过类名调用) - 调用
createForm方法并传入指定字符串,用父类Form类型接收返回的子类实例
完整Main类代码示例
public class Main { public static void main(String[] args) { // 1. 创建工厂类实例 FormenFabrik formFabrik = new FormenFabrik(); // 2. 创建Kreis实例 Form kreisForm = formFabrik.createForm("Kreis"); // 若需调用Kreis专属方法,先判断类型再强转 if (kreisForm instanceof Kreis) { ((Kreis) kreisForm).draw(); // 假设Kreis有draw()方法 } // 3. 创建Rechteck实例 Form rechteckForm = formFabrik.createForm("Rechteck"); if (rechteckForm instanceof Rechteck) { ((Rechteck) rechteckForm).draw(); // 假设Rechteck有draw()方法 } } }
优化建议(可选)
你当前的FormenFabrik类中,else分支会默认返回Rechteck,无论传入的字符串是否为"Rechteck"。如果需要严格匹配类型,可以修改为:
public class FormenFabrik { public Form createForm(String newform) { if ("Kreis".equals(newform)) { return new Kreis(); } else if ("Rechteck".equals(newform)) { return new Rechteck(); } else { // 抛出异常或返回null,根据业务需求处理 throw new IllegalArgumentException("不支持的图形类型:" + newform); } } }
内容的提问来源于stack exchange,提问作者Wannabree
相关产品推荐
相关产品推荐

