多态版简单计算器
来源:互联网 发布:电话轰炸软件下载 编辑:程序博客网 时间:2024/05/29 18:05
namespace C计算器
{
class Program
{
static void Main(string[] args)
{
//多态是基于继承.
//找父类.
//寻找每个子类的共同方法. 将这个方法定义在父类中,.
//找每个子类的同1个方法 具有不同的实现.
//Console.WriteLine("请输入第一个数字");
//int numA = int.Parse(Console.ReadLine());
//Console.WriteLine("请输入第二个数字");
//int numB = int.Parse(Console.ReadLine());
//Console.WriteLine("请输操作符: 1.加 2.减 3.乘 4.除");
//string opt = Console.ReadLine();
//Operation operation = OperationFactory.GetOperation(opt, numA, numB);
//Console.WriteLine(operation.GetRes());
int numA = 110;
int numB = 220;
string opt = "+";
Operation operation = OperationFactory.GetOperation(opt, numA, numB);
Console.WriteLine(operation.GetRes());
Console.ReadKey();
}
}
}
namespace C计算器
{
/// <summary>
/// 计算父类.
/// </summary>
class Operation
{
public int NumA { get; set; }
public int NumB { get; set; }
public Operation() { }
public Operation(int numA, int numB)
{
this.NumA = numA;
this.NumB = numB;
}
public virtual int GetRes()
{
return 0;
}
}
}
namespace C计算器
{
/// <summary>
/// 工厂类.
/// </summary>
class OperationFactory
{
/// <summary>
/// 根据两个数和操作符类型返回不同的子类对象,
/// </summary>
/// <param name="opt"></param>
/// <param name="numA"></param>
/// <param name="numB"></param>
/// <returns></returns>
public static Operation GetOperation(string opt, int numA, int numB)
{
Operation operation = null;
switch (opt)
{
case "1":
operation = new Add(numA, numB);
break;
case "2":
operation = new Jian(numA, numB);
break;
case "3":
operation = new Ji(numA, numB);
break;
case "4":
operation = new Div(numA, numB);
break;
}
return operation;
}
}
}
namespace C计算器
{
class Add:Operation
{
public Add(int numA,int numB)
{
this.NumA = numA;
this.NumB = numB;
}
public override int GetRes()
{
return base.NumB + NumA;
}
}
}
namespace C计算器
{
class Jian:Operation
{
public Jian(int numA, int numB)
:base(numA,numB)
{
}
public override int GetRes()
{
return base.NumA - base.NumB;
}
}
}
namespace C计算器
{
class Ji:Operation
{
public Ji(int numA, int numB)
:base(numA,numB)
{
}
public override int GetRes()
{
return base.NumA * base.NumB;
}
}
}
namespace C计算器
{
class Div:Operation
{
public Div(int numA, int numB)
:base(numA,numB)
{
}
public override int GetRes()
{
return base.NumA / base.NumB;
}
}
}
- 多态版简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- 简单计算器
- HDU 2059 龟兔赛跑 (动态规划分析)
- Cookie&Session
- 关于selenium的一些书籍和资料
- JSP web.xml <jsp-config>标签使用详解
- hive join
- 多态版简单计算器
- UVA 11488,Hyper Prefix Sets,Trie树
- 考研英语复习计划
- ios block语法
- 深入体验JavaWeb开发内幕——EL表达式之一
- JS动态添加输入框
- 生日(扩展)
- java线程详解
- 红外解码 IRCode