【程序功能】 本程序实现如下功能:定义磁盘 Disk ,在类中定义字段、属性和虚拟方法;由基类 Disk 创建派生类 HardDisk 、 Floppy 和 Flash , 在派生类中实现方法重载;在实例化类的对象并且调用类的方法实现多态性。 【操作要求】 新建并保存项目:在 Visual Studio.NET 中,新建一个 Visual C# 控制台应用程序项目,名称设置为 Test2_13 , 位置设置为考生文件夹。 1. 定义基类 Disk: 为项目添加公有类 Disk ,保存在文件 Disk.cs 中。 2. 为基类 Disk 添加下列字段、属性和方法: l 私有字段 m_size , 代表磁盘容积,数据类型为 float ; l 私有字段 m_used ,代表磁盘已用空间,数据类型为 float ; l 共有属性 Size ,用于获取和设置 m_size 字段,包含 get 访问器和 set 访问器; l 共有属性 Used ,用于获取和设置 m_used 字段,包含 get 访问器和 set 访问器,在类的构造函数中设置初始值为 0 ; l 虚拟方法 GetAvailable () ,用于计算磁盘剩余空间:方法返回类型为 string 。 3. 定义派生类 HardDisk 、 Floppy 和 Flash, 在其中重写基类的构造函数和抽象方法: l 从基类 Disk 中派生出公有类 Floppy 和 Flash, 仍然保存在文件 Disk.cs 中; l 在类 HardDisk 的构造函数中,设置属性 Size 的初始值为 1000 ; l 在类 Floppy 的构造函数中,设置属性 Size 的初始值为 1.44f ; l 在类 Flash 的构造函数中,设置属性 Size 的初始值为 32 ; l 在类 HardDisk 中重写基类 Disk 的抽象方法 GetAvailable: Ø 若属性 Used 的值小于属性 Size 的值,方法返回一个字符串“硬盘剩余空间为: x ”,其中 x 表示属性 Size 减去 Used 的值; Ø 否则,方法返回一个字符串 “硬盘已满”。 l 在类 Floppy 中重写基类 Disk 的抽象方法 GetAvailable: Ø 若属性 Used 的值小于属性 Size 的值,方法返回一个字符串“软盘剩余空间为: x ”,其中 x 表示属性 Size 减去 Used 的值; Ø 否则,方法返回一个字符串 “软盘已满”。 l 在类 Flash 中重写基类 Disk 的虚拟方法 GetAvailable: Ø 若属性 Used 的值小于属性 Size 的值,方法返回一个字符串“闪盘剩余空间为: x ”,其中 x 表示属性 Size 减去 Used 的值; Ø 否则,方法返回一个字符串 “闪盘已满”。 4. 在方法中实例化类的对象,调用方法输出磁盘的剩余空间: l 构造 Disk 类型的一个变量 disk; l 实例化 Disk 的一个对象并赋值给变量 disk ,设置属性 size 的值为 120 ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 实例化 Floppy 的一个对象 floppy ,设置属性 Used 的值为 3.2f ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 实例化 Flash 的一个对象 flash ,设置属性 Used 的值为 3.2f ,调用类的方法 GetAvailable (),并输出方法返回的字符串; l 输出文本 “按回车键结束”,读取回车键结束程序。 5. 程序设计完成后进行编译,生成项目的 EXE 可执行文件。 【执行结果】 运行程序打开命令行窗口,输出磁盘剩余空间,如图 2-13 所示。