2022年实验类的继承与多态实用 .pdf
安徽机电职业技术学院实验报告面向对象程序设计(C#) 实验 6 类的继承与多态第 1 页 共 5 页安徽机电职业技术学院实验报告课程名称面向对象程序设计实验名称实验 6 类的继承与多态系部信息工程系班级姓名学号实验时间年月日时分时分地点机位一、实验目的1、进一步掌握类的定义与使用;2、掌握类的继承,以及访问属性public, private 和 protected 的用法;3、了解类的多态性;4、掌握使用类来构造应用程序。二、实验内容使用 Visual Studio .NET 2005 ,在 Point-Circle-Cylinder示例程序中,添加一个圆锥体类(Cone),该类派生自圆类(Circle) ,并具有以下属性:高度(Height) ,以及以下方法:Area(求圆锥体的表面积)、Volumn (求圆锥体的体积)三、实验步骤1、将服务器上“面向对象”课件的文件夹中的“Csharp 示例 第 7 课 Exercise”文件夹复制到本地磁盘上。打开其中的“Exercise.sln”,完成其中的3 个任务。这3个任务目标写在 Form1.cs 文件中,需要在项目中添加2个类 (圆类 Circle, 圆锥体 Cone)的定义。2、将完成的源程序压缩后,连同本实验报告,一同通过电子邮件交给指导教师。四、程序运行结果截图程序运行后单击Circle 类测试 按钮后的运行结果截图:程序运行后单击Cone 类测试 按钮后的运行结果截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - 安徽机电职业技术学院实验报告面向对象程序设计(C#) 实验 6 类的继承与多态第 2 页 共 5 页程序运行后单击多态性测试 按钮后的运行结果截图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - 安徽机电职业技术学院实验报告面向对象程序设计(C#) 实验 6 类的继承与多态第 3 页 共 5 页五、程序源代码(用 Winrar 压缩后用附件提交,源代码中要有比较完备的注释),以下代码请粘贴于此:Circle 类的代码:classCircle: Point privatedouble radius; publicdouble Radius get return radius; set radius = value ; public Circle() this .X = 0; this .Y= 0; this .radius = 0; public Circle( int X, int Y, double radius):base(X,Y) this .X = X; this .Y = Y; this .radius = radius; publicoverridedouble Area() returnMath.Round( Math.PI * Math.Pow( this .radius,2),2); publicdouble zhouchang() return 2 * Math.PI * radius; publicoverridestring Name get return圆; publicoverridestring ToString() return圆心坐标 = + base.ToString() + ,半径 = + radius+r 圆的周长=+Math.Round( this .zhouchang(),2); /return 圆心坐标 =+this.X+,+this.Y+;半径 =+ radius+n+圆的周长+Math.Round(this.zhouchang()+n+圆的面积 =+Math.Round(this.Areaes(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - 安徽机电职业技术学院实验报告面向对象程序设计(C#) 实验 6 类的继承与多态第 4 页 共 5 页任务 1 的代码:/ TODO 1: 给本项目添加 1个 Circle 类的定义,它继承自Point 类Circle a = new Circle (5,5,5); string str=a.Name+ : + a.ToString(); Output(str);Cone 类的代码:classCone: Circle privatedouble Height; privatedouble height get return Height; set Height = value ; public Cone() this .Height = 0; this .X = 0; this .Y = 0; public Cone( int X, int Y, double radius, double Height):base(X,Y,radius) this .X = X; this .Y = Y; this .Height = Height; this .Radius = radius; publicdouble Areas() returnbase.Area() + (this .zhouchang() * Height) / 2; publicoverridedouble Volume() returnMath.Round( base.Area() * Height) / 3,2); publicoverridestring Name get return圆锥 ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 安徽机电职业技术学院实验报告面向对象程序设计(C#) 实验 6 类的继承与多态第 5 页 共 5 页publicoverridestring ToString() return圆心坐标 = + this .X + , + this .Y + ; 半径 = + this .Radius + n + 圆锥的高 = + this .Height+ 圆锥的表面积 =+Math.Round( this .Areas(),2); 任务 2 的代码:/ TODO 2: 给本项目添加1 个 Cone 类的定义,它继承自Circle类Cone b = new Cone(1, 2, 3,4); string strs = b.Name + : + b.ToString(); Output(strs);六、思考题:1、请说明private、public 、protected这 3 个访问修饰符的作用public成员,可以从程序的任何位置,通过该类(基类或派生类)的对象引用,来访问它。private成员,只能在基类的主体中访问它protected(保护的 ) 成员,只能在基类和它的派生类中访问。2、请说明什么是类的多态性?类的多态性有什么样的优点?多态性是一个面向对象的概念,它允许以相似的方式来对待所有的派生类,尽管这些派生类是各不相同的。创建派生类的目的是为了获得更多的特殊功能。通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。便于代码的调用和减少代码量。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -