实验6类的继承与多态

实验6类的继承与多态
实验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类测试"按钮后的运行结果截图:

口"黄的魅承与备态

菁除

圆的趙标是a Y坐标是0,半径是0

新圖的位置和半径是’圆心坐标=及2];半逐丸卫5 直径是:3.50

周长是》26.70

面积是:56,75

[测试口rd■尝〔I [別汛恥eL

□斌匕皿裟[测口心1血奥]|

程序运行后单击"Cone类测试"按钮后的运行结果截图:

园的邂标是6 Y坐标是6半径是0

新E的位萱和半径是’ II心坐标=2 2];半径45 園徳休的面积足=132.11

區]锥体和是:103. 69

程序运行后单击”多态性测试”按钮后的运行结果截图:

矩形;£上争坐标t [呱40h长刃比反宽吃0 面机250体积;0

长方体:左上ft坐标:[沁切h长临反宽M反髙度=10面积;165

休和t 115

园心坐标-[0, Q];半径电5

55.7632636012188口]| -回IhEaj

[蜃态也責示I

圍心坐标-[0,0],半径P.E

面和* 3.3.

48451D0064T5

测试加皿类珈直胁5£1啖

[藤志性涓示

II B II-B-

面秧

Mrhn

Fl

安徽机电职业技术学院实验报告 面向对象程序设计(C#)

}

}

五、程序源代码(用Winrar 压缩后用附件提交,源代码中要有比较完备的注释 请粘贴于此:

Circle 类的代码: P rivate double radius; p ublic double Radius

get

return radius; set

{ radius = }

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;

public override double Area()

return Math.Round( Math .PI * Math .Po w(this public double zhouchang()

return "圆心坐标="+ base.ToString() +

" ="+Math.Round( this .zhouchang(),2);

//return " 圆心坐标=["+this.X+","+this.Y+"];

"+Math.Round(this.zhouchang())+"\n"+"

圆的面积="+Math.Round(this.Areaes());

),以下代码

class {

Circle : Point value ;

.radius,2),2);

return 2 * Math. PI * radius; p ublic override

string Name

get

return "圆";

P ublic override

string ToString()

半径="+ radius+ "\r 圆的周长

半径="+ radius+"\n"+" 圆的周长

}

}

任务 1 的代码:

// TODO 1: 给本项目添加 1个 Circle 类的定义,它继承自 Point 类

Circle a = new Circle (5,5,5);

string str=https://www.360docs.net/doc/f43159397.html,+ ":" Output(str);

privat e privat e

double double

Height

; height

class {

Cone 类的代码: Cone: Circle get

set Height =

return 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 this this this .X = X; .Y = Y; .Height = Height; .Radius = radius;

public double Areas()

}

public {

}

public get

return override

return override return base.Area() + (

this .zhouchang() * Height) / 2;

double Volume()

Math.Round(( base.Area() * Height) /

3,2);

string Name

"圆锥";

+ a.ToString();

安徽机电职业技术学院实验报告面向对象程序设计(C#)

p ublic override string 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 = https://www.360docs.net/doc/f43159397.html, + ":" + b.ToStringO;

Out pu t(strs);

六、思考题:

1、请说明private、public、protected 这3个访问修饰符的作用

public 成员,可以从程序的任何位置,通过该类(基类或派生类)的对象引用,来访问它。private 成员,只能在基类的主体中访问它

protected(保护的)成员,只能在基类和它的派生类中访问。

2、请说明什么是类的多态性?类的多态性有什么样的优点?

多态性是一个面向对象的概念,它允许以相似的方式来对待所有些派生

的派生类,尽管这

类是各不相同的。创建派生类的目的是为了获得更多的特殊功能。

通过继承,一个类可以用作多种类型:可以用作它自己的类型、任何基类型,或者在实现接口时用作任何接口类型。这称为多态性。

便于代码的调用和减少代码量。

相关主题
相关文档
最新文档