public abstract class Car { public abstract String getInfo(); //用来描述汽车的信息 } public class BMW extends Car { @Override public String getInfo() { //用来描述汽车的信息 return "BMW"; } } public class Benz extends Car { @Override public String getInfo() { //用来描述汽车的信息 return "Benz"; } } public class CarFactory { public static Car getCar(String name) { if (name.equalsIgnoreCase("BMW")) {//如果需要BMW则创建BMW对象 return new BMW(); } else if (name.equalsIgnoreCase("Benz")) {//如果需要Benz则创建Benz对象 return new Benz(); } else {//暂时不能支持其他车型 return null; } } } public class Customer { public static void main(String[] args) { System.out.println("顾客要购买BMW:"); Car bmw = CarFactory.getCar("BMW"); //用户要购买BMW System.out.println("提取汽车:" + bmw.getInfo()); //提取BMW System.out.println("顾客要购买Benz:"); Car benz = CarFactory.getCar("Benz"); //用户要购买Benz System.out.println("提取汽车:" + benz.getInfo());//提取Benz } }
有个没有解决的问题是:返回值null那个会报错,该怎么解决???