【程序功能】 本程序实现如下功能:定义动物类 Animal ,在类中定义字段、属性和虚拟方法;由基类 Animal 创建派生类 Dog 、 Cat , 在派生类中实现方法重载;在实例化类的对象并且调用类的方法实现多态性。 【操作要求】 新建并保存项目:在 Visual Studio.NET 中,新建一个 Visual C# 控制台应用程序项目,名称设置为 Test2_11 , 位置设置为考生文件夹。 1. 定义基类 Animal: 为项目添加公有抽象类 Animal ,保存在文件 Animal.cs 中。 2. 为基类 Animal 添加下列字段、属性和方法: l 私有字段 m_sex, 代表性别,数据类型为 bool ; l 私有字段 m_sound ,代表动物的叫声,数据类型为 string ; l 公有属性 Sex ,用于获取和设置 m_sex 字段,包含 get 访问器和 set 访问器,在类的构造函数中设置初始值为 false ; l 公有属性 Sound ,用于获取和设置 m_sound 字段,包含 get 访问器和 set 访问器,在类的构造函数中设置初始值为“ Howl... ”; l 抽象方法 Roar (),用于模拟动物发出的叫声,方法返回类型为 string 。 3. 定义派生类 Dog 、 Cat 和 Cow, 在其中重写基类的构造函数和抽象方法: l 从基类 Animal 中派生出共有类 Dog 、 Cat 和 Cow ,仍然保存在文件 Animal.cs 中; l 在类 Dog 的构造函数中,设置属性 Sex 的初始值为 true, 设置属性 Sound 的初始值为“ Wow... ” ; l 在类 Cat 的构造函数中,设置属性 Sound 的初始值为“ Miaow... ” ; l 在类 Cow 的构造函数中,设置属性 Sound 的初始值为“ Moo... ” ; l 在类 Dog 中重写基类 Animal 的抽象方法 Roar ,返回一个字符串“ Dog ”加上属性 Sound 的值; l 在类 Cat 中重写基类 Animal 的抽象方法 Roar ,返回一个字符串“ Cat ”加上属性 Sound 的值; l 在类 Cow 中重写基类 Animal 的抽象方法 Roar ,返回一个字符串“ Cow ”加上属性 Sound 的值 4. 在方法中实例化类的对象,调用方法输出介绍动物发出叫声的字符串: l 构造 Animal 的一个对象 animal ; l 实例化 Dog 的一个对象并赋值给变量 animal ,调用类的方法 Roar() ,并输出方法返回的字符串; l 实例化 Cat 的一个对象并赋值给变量 animal ,调用类的方法 Roar() ,并输出方法返回的字符串; l 实例化 Cow 的一个对象并赋值给变量 animal ,调用类的方法 Roar() ,并输出方法返回的字符串; l 输出文本 “按回车键结束”,读取回车键结束程序。 5. 程序设计完成后进行编译,生成项目的 EXE 可执行文件。 【执行结果】 运行程序打开命令行窗口,输出介绍动物发出叫声的字符串,如图 2-11 所示。