Java经典编程300例之实例062 简单的汽车销售商场(多态)
来源:互联网 发布:厦门广电网络 编辑:程序博客网 时间:2024/04/30 11:00
实例说明
当顾客在商场购物时,卖家需要根据顾客的需求提取商品。对于汽车销售商场也是如此。用户需要先指定购买的车型,然后商家去提取该车型的汽车。本实例将实现一个简单的汽车销售商场,用来演示多态的用法。
实现过程
新建一个抽象类,名称为Car,在该类中定义一个抽象方法getInfo()。
Car.java
public abstract class Car { public abstract String getInfo();}
再创建一个名称为BMW的类,该类继承自Car并实现其getInfo()方法。
BMW.java
public class BMW extends Car { @Override public String getInfo() { return "BMW"; }}
再创建一个名称为Benz的类,该类继承自Car并实现其getInfo()方法。
Benz.java
public class Benz extends Car { @Override public String getInfo() { return "Benz"; }}
再创建一个名称为CarFactory的类,该类定义了一个静态方法getCar(),它可以根据用户指定的车型来创建对象。
CarFactory.java
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; } }}
再创建一个名称为Customer的类,用来进行测试。在main()方法中,根据用户的需要提取不同的汽车。
Customer.java
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 }}
编译运行
$ javac Car.java BMW.java Benz.java CarFactory.java Customer.java
$ java Customer
顾客要购买BMW
提取汽车:BMW
顾客要购买Benz
提取汽车:Benz
技术要点
本实例应用的主要技术就是面向对象程序设计中的多态。多态是面向对象程序设计的基本特性之一。使用多态的好处就是可以屏蔽对象之间的差异,从而增强了软件的扩展性和重用性。Java的多态主要是通过重写父类(或接口)中的方法来实现的。对于香蕉、橘子等水果而言,人们通常关心其能吃的特性。如果分别说香蕉能吃、橘子能吃,则当再增加新的水果种类,如菠萝时还要写个菠萝能吃,这是非常麻烦的。使用多态的话可以写成水果能吃,当需要用到具体的水果时,系统会自动帮忙替换,从而简化开发。
0 0
- Java经典编程300例之实例062 简单的汽车销售商场(多态)
- Java经典编程300例之实例064 策略模式的简单应用
- Java经典编程300例之实例065 适配器模式的简单应用
- Java经典编程300例之实例061 计算几何图形的面积(抽象类)
- [软件发布]:Java的数据库应用实例——汽车销售管理系统(JDBC+MSSQL)
- Java经典编程300例之实例046 单例模式的应用
- Java经典编程300例之实例047 汉诺塔问题求解(递归)
- Java经典编程300例之实例001 输出"Hello World!"
- Java经典编程300例之实例011 输出错误信息与调试信息
- Java经典编程300例之实例012 从控制台接收输入字符
- Java经典编程300例之实例063 使用Comparable接口自定义排序
- 转折点:销售转向java编程的开始之路
- java socket 编程经典实例
- 简单的python汽车之家爬虫
- JAVA设计模式之策略模式(2)商场打折
- 基于QT的汽车销售管理
- java接口实现汽车销售,显示销售车型和售价以及总销售金额
- java经典编程300例
- cover
- 分辨串口和USB
- SpringMVC中的文件上传
- LeetCode-Candy
- 0084 PowerDesigner使用教程【基础】
- Java经典编程300例之实例062 简单的汽车销售商场(多态)
- http://poj.org/problem?id=3750
- linux 交叉编译找不到库文件
- 设计与UML图以及设计模式
- Outlook2010利用规则运行脚本,将附件保存在固定位置,并在邮件类别中标注类别。
- python取wmi的一些实例
- 区间最小值查询
- Julia和Matlab中的sum()的不同
- 【Android核心基础06】 - Activity