C#创建一个图形(Shape)的抽象类,在该类中定义一个求面积(Area)的抽象方法。创建继承于图形类的三个子类,分别为正方形(Square),矩型(Rectangle),三角形(Triangle),并分别为子类定义带参数的构造函数。参数分别为:正方形:边长(side)矩形:长,宽(length,width)三角形:底,高 (bottom,height)在三个实体类中,覆写求面积(Area)的方法,根据图形的类型给出具体实现(例如,矩形是长*宽)。在main方法中,生成一个正方形对象,一个矩形对象,一个三角形对象。将它们放入一个图形(shape)数组中。使用多态的方法,统一地调用Area方法,输出每种图形的面积值。
时间: 2024-02-18 22:02:58 浏览: 81
好的,以下是您需要的 C# 代码:
```csharp
using System;
abstract class Shape
{
public abstract double Area();
}
class Square : Shape
{
private double side;
public Square(double side)
{
this.side = side;
}
public override double Area()
{
return side * side;
}
}
class Rectangle : Shape
{
private double length;
private double width;
public Rectangle(double length, double width)
{
this.length = length;
this.width = width;
}
public override double Area()
{
return length * width;
}
}
class Triangle : Shape
{
private double bottom;
private double height;
public Triangle(double bottom, double height)
{
this.bottom = bottom;
this.height = height;
}
public override double Area()
{
return 0.5 * bottom * height;
}
}
class Program
{
static void Main(string[] args)
{
Shape[] shapes = new Shape[3];
shapes[0] = new Square(5);
shapes[1] = new Rectangle(4, 6);
shapes[2] = new Triangle(3, 8);
for (int i = 0; i < shapes.Length; i++)
{
Console.WriteLine("第" + (i + 1) + "个图形的面积为:" + shapes[i].Area());
}
}
}
```
以上代码中,我们创建了一个抽象类 `Shape`,其中定义了一个抽象方法 `Area` 来计算图形的面积。然后我们创建了三个子类 `Square`、`Rectangle` 和 `Triangle` 分别继承于 `Shape` 类,并在每个子类中实现了 `Area` 方法,根据不同的图形类型给出了具体的计算方法。注意,由于 `Shape` 类是抽象类,所以我们无法直接实例化它,只能通过子类来实例化。
接着我们在 `Main` 方法中,创建了一个长度为3的 `Shape` 对象数组,并为数组中的每个成员创建了一个相应的子类对象。然后我们使用了多态的方式,通过 `shapes[i].Area()` 调用了每个对象的 `Area` 方法,并输出了每个图形的面积。
阅读全文