\定义一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和

发布时间:2021-03-15 06:14:28

\定义一个抽象类Shape,它有两个抽象的方法area()和perimeter(),分别表示求面积和

网友回答

简单工厂模式?
我之前做了个简易计算器的简单工厂模式,效果与你这个是一样的~~~~
你的抽象类Shape里面的方法area()和perimeter(),可以参考的计算器的GetResult()
都是虚方法(使用virtual 关键字),然后在计算面积、周长的子类中分别重写(override关键字)就是了~~~~~~~~~
具体的你看我的 简易计算器工程模式 代码:
C# 简单工厂之简易计算器
总共三个类:Operation.cs OperationFactory.cs Program.cs
Operation.cs 两个操作数,一个运算的虚方法GetResult(),该方法得出运算结果
加减乘除 四个运算类,每个类继承于Operation.cs,每个类都有一个GetResult()方法
,子类的GetResult()用于实现具体的加减乘除运算~~~~~~~~
OperationFactory.cs 实例化 加减乘除 四个运算类~~~~~
Program.cs 里面是main()调用运算类~~~~~
Operation.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FactoryPattern
{ /// /// 运算类
/// public class Operation
{ #region 运算类,包含两个操作数,一个虚的运算方法
private double _numberA = 0;
/// /// 操作数A
/// public double NumberA
{ get { return _numberA; }
set { _numberA = value; }
} private double _numberB = 0;
/// /// 操作数B
/// public double NumberB
{ get { return _numberB; }
set { _numberB = value; }
} #region 虚方法,得到运算结果
public virtual double GetResult()
{ double result = 0;
return result; } #endregion #endregion } /// /// 加法类:继承于运算类 /// public class Operation
Add : Operation { public override double GetResult() { double result = 0;
result = NumberA + NumberB; return result; }
以上问题属网友观点,不代表本站立场,仅供参考!