关于多态的问题,求高人指点!
使用VS2005创建一个控制台应用程序项目,项目名为ShapeSample。1、 创建Shape类
创建代表‘形状’的类Shape,其中包含如下操作:
1) Draw
接收两个参数x和y,分别是形状的X轴和Y轴的位置,虚函数,能被派生类重写。
2) GetArea
返回当前形状的面积,返回类型为double,虚函数,能被派生类重写。
(注:在Shape类中的函数不执行任何操作,函数体为空。)
2、 创建Circle类
创建代表‘圆形’的类Circle,该类从Shape类派生,该类的构造函接收一个类型为double的参数作为圆的半径,该类中重写了基类中的如下操作:
1) Draw
重写基类中的Draw函数,使其能够输出如下内容:
l 形状被绘制位置的坐标。
l 圆的半径。
2) GetArea
返回当前圆形的面积,返回类型为double。
3、 创建Square类
将使用C# 创建代表‘正方形’的类Square,该类从Shape类派生,该类的构造函接收一个类型为double的参数作为正方形的边长,该类中重写了基类中的如下操作:
1) Draw
重写基类中的Draw函数,使其能够输出如下内容:
l 形状被绘制位置的坐标。
l 正方形的边长。
2) GetArea
返回当前正方形的面积,返回类型为double。
4、Program类中的内容
在本练习中,将使用C# 创建用来绘制形状的DrawShape函数。
(1)在Program类中创建名为DrawShape的静态函数。
该函数有三个参数:
x,y:形状绘制的位置。
shape: 将要绘制的形状。
该函数完成如下功能:
l 使用接收来的坐标值调用shape对象的Draw函数,完成绘制操作。
l 调用shape对象的GetArea函数并输出其结果。
(2) 在Main函数中输入如下代码:
hape(10, 10, new Circle(11.4f));
DrawShape(100, 100, new Square(5f));