C语言递归
2015-12-10 18:12
423 查看
abstract class Pizza { public abstract int getPrice(); // count the cents } class HamAndMushroomPizza extends Pizza { public int getPrice() { return 850; } } class DeluxePizza extends Pizza { public int getPrice() { return 1050; } } class HawaiianPizza extends Pizza { public int getPrice() { return 1150; } } class PizzaFactory { public enum PizzaType { HamMushroom, Deluxe, Hawaiian } public static Pizza createPizza(PizzaType pizzaType) { switch (pizzaType) { case HamMushroom: return new HamAndMushroomPizza(); case Deluxe: return new DeluxePizza(); case Hawaiian: return new HawaiianPizza(); } throw new IllegalArgumentException("The pizza type " + pizzaType + " is not recognized."); } } class PizzaLover { /* * Create all available pizzas and print their prices */ public static void main (String args[]) { for (PizzaFactory.PizzaType pizzaType : PizzaFactory.PizzaType.values()) { System.out.println("Price of " + pizzaType + " is " + PizzaFactory.createPizza(pizzaType).getPrice()); } } } Output: Price of HamMushroom is 850 Price of Deluxe is 1050 Price of Hawaiian is 1150
相关文章推荐
- c++模板的巧妙
- c语言:链表排序, 链表反转
- C++中的类所占内存空间总结
- C++实现建立和一二进制树的三个递归遍历
- 简单分析针对ARM平台的C语言程序的编译问题
- C++ Boost 学习资源列表
- C++ Boost库简介
- 举例理解C语言二维数组的指针指向问题
- VC++实现串口通信的应用程序设计
- Protocol Buffer技术详解(C++实例)
- C++设计模式新解一 代理模式 (PS设计模式的必要性)
- c++学习笔记(2)
- C++11中的匿名函数(lambda函数,lambda表达式)
- cygwin编译c++的坑
- 使用函数包装器的 通用泛化的命令类
- 如何优雅地使用c语言编写爬虫
- 将两个有序链表head1 head2,合并为一个链表
- C语言练习作业(七)
- 无向图的深度优先搜索(最终版)
- C++: 构造函数和析构函数