简单的汽车销售商场
当顾客在商场购物时,卖家需要根据顾客的需求提取商品。对于汽车销售商场也是如此。用户需要先指定购买的车型,然后商家去提取该车型的汽车。本实例将实现一个简单的汽车销售商场,用来演示多态的用法。
实现过程如下:
(1)编写类Car,该类是一个抽象类,其中定义了一个抽象方法getInfo(),实例代码如下:
public abstract class Car {
public abstract String getInfo();//用来描述汽车的信息
}
(2)编写类BMW,该类继承自Car并实现了其getInfo()方法,实例代码如下:
public class BMW extends Car {
@Override
public String getInfo() {//用来描述汽车的信息
return "BMW";
}
}
(3)编写类Benz,该类继承自Car并实现了其getInfo()方法,实例代码如下:
public class Benz extends Car {
@Override
public String getInfo() {//用来描述汽车的信息
return "Benz";
}
}
(4)编写类CarFactory,该类定义了一个静态方法getCar(),它可以根据用户指定的车型来创建对象,实例代码如下:
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;
}
}
}
(5)编写类Customer,它是本实例的主类,在类的主方法中,根据用户的需要提取了不同的汽车。实例代码如下:
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
}
}