【程序功能】 本程序实现如下功能:定义支付类 Payment ,在类中定义字段、属性和虚拟方法;由基类 Payment 创建派生类 Cash 和 Cheque , 在派生类中实现方法重载;在实例化类的对象并且调用类的方法。 【操作要求】 新建并保存项目:在 Visual Studio.NET 中,新建一个 Visual C# 控制台应用程序项目,名称设置为 Test2_8 , 位置设置为考生文件夹。 1. 定义基类 Payment: 为项目添加公有类 Payment ,保存在文件 Payment.cs 中。 2. 为基类 Payment 添加下列字段、属性和方法: l 私有字段 m_sum 代表支付金额,数据类型为 int ; l 私有字段 m_payer ,代表支付人,数据类型为 string ; l 公有属性 Sum ,用于获取和设置 m_sum 字段,包含 get 访问器和 set 访问器 , 在类的构造函数中设置初始值为 0 ; l 公有属性 Payer ,用于获取和设置 m_payer 字段,包含 get 访问器和 set 访问器; l 虚拟方法 Summary() ,用于说明支付情况,方法返回一个字符串 “支付金额为: x ” , 其中 x 表示说明属性 Sum 的值 。 3. 定义派生类 Cash 和 Cheque , 在其中重写基类的构造函数和虚拟方法: l 从基类 Payment 中派生出公有类 Cash 和 Chaque , 仍然保存在文件 Payment.cs 中; l 在类 Cash 中重写基类 Payment 的虚拟方法 Summary: Ø 若属性 Sum 的值 <10000 ,方法返回一个字符串“现金支付金额为: x ”,其中 x 表示属性 Sum 的值 Ø 否则,方法返回一个字符串 “对不起,万元以上请用支票支付”。 l 在类 Cheque 的构造函数中,设置属性 Sum 的初始值为 10000 ; l 在类 Cheque 中重写基类 Payment 的虚拟方法 Summary : Ø 若属性 Payer 的值 >=100 ,方法返回一个字符串“支票支付金额为: x ”,其中 x 表示属性 Sum 的值 Ø 否则,方法返回一个字符串 “对不起, 100 元以下不结受支票”。 4. 在方法中实例化类的对象,调用方法输出支付情况说明: l 实例化 Payment 的一个对象 pl ,设置属性 Sum 的值为 20000 ,调用类的方法 Summary (),并输出方法返回的字符串; l 实例化 Cash 的一个对象 p2 ,设置属性 Sum 的值为 20000 ,调用类的方法 Summary (),并输出方法返回的字符串; l 实例化 Cheque 的一个对象 p3 ,设置属性 Sum 的值为 20000 ,调用类的方法 Summary (),并输出方法返回的字符串; l 输出文本 “按回车键结束”,读取回车键结束程序。 5. 程序设计完成后进行编译,生成项目的 EXE 可执行文件。 【执行结果】 运行程序打开命令行窗口,输出支付情况说明,如图 2-8 所示。