【程序功能】 本程序实现如下功能:定义水果类 Fruit ,在类中定义字段、属性和虚拟方法;由基类 Fruit 创建派生类 Apple 、 Banana 和 Orange , 在派生类中实现方法重载;在实例化类的对象并且调用类的方法实现多态性。 【操作要求】 新建并保存项目:在 Visual Studio.NET 中,新建一个 Visual C# 控制台应用程序项目,名称设置为 Test2_14 , 位置设置为考生文件夹。 1. 定义基类 Fruit: 为项目添加抽象类 Fruit ,保存在文件 Fruit.cs 中。 2. 为基类 Fruit 添加下列字段、属性和方法: l 私有字段 m_weight , 代表质量,数据类型为 float ; l 私有字段 m_color ,代表颜色,数据类型为 string ; l 公有属性 Weight ,用于获取和设置 m_weight 字段,包含 get 访问器和 set 访问器,在类的构造函数中设置初始值为 1 ; l 公有属性 Color ,用于获取和设置 m_color 字段,包含 get 访问器和 set 访问器; l 抽象方法 GetAvailable () ,用于说明水果质量,方法返回类型为 string 。 3. 定义派生类 Apple 、 Banana 和 Orange, 在其中重写基类的构造函数和虚拟方法: l 从基类 Fruit 中派生出共有类 Apple 、 Banana 和 Orange, 仍然保存在文件 Fruit.cs 中; l 在类 Apple 的构造函数中,设置属性 Weight 的初始值为 2 ; l 在类 Orange 的构造函数中,设置属性 Weight 的初始值为 1.5f ; l 在类 Apple 中重写基类 Fruit 的抽象方法 GetAvailable ,方法返回一个字符串“ The weight of apple is x ” ,其中 x 表示属性 weigth 的值; l 在类 Orange 中重写基类 Fruit 的抽象方法 GetAvailable ,方法返回一个字符串“ The weight of Orange is x ” ,其中 x 表示属性 weigth 的值; 4. 在方法中实例化类的对象,调用方法输出水果质量: l 构造 Fruit 类型的一个变量 fruit; l 实例化 Apple 的一个对象 fruit ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 实例化 Orange 的一个对象 fruit ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 实例化 Banana 的一个对象 fruit ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 输出文本 “按回车键结束”,读取回车键结束程序。 5. 程序设计完成后进行编译,生成项目的 EXE 可执行文件。 【执行结果】 运行程序打开命令行窗口,输出水果质量,如图 2-14 所示。