用C#控制台程序实现:多态实现计算三角形面积
时间: 2024-10-20 19:13:24 浏览: 32
在C#中,你可以通过创建一个基类`Shape`,然后派生出两个子类`Triangle`和`Circle`,分别代表三角形和圆形。利用多态性,我们可以让`Shape`类型的变量引用具体的`Triangle`实例,然后调用其计算面积的方法。这里是一个简单的示例:
```csharp
using System;
// 基类 Shape
public abstract class Shape
{
public abstract double GetArea();
}
// 子类 Triangle
public class Triangle : Shape
{
private double baseLength;
private double height;
public Triangle(double baseLength, double height)
{
this.baseLength = baseLength;
this.height = height;
}
public override double GetArea()
{
return 0.5 * baseLength * height;
}
}
// 子类 Circle
public class Circle : Shape
{
private double radius;
public Circle(double radius)
{
this.radius = radius;
}
public override double GetArea()
{
return Math.PI * radius * radius;
}
}
// 主函数
class Program
{
static void Main(string[] args)
{
// 创建并存储不同类型形状的对象
Shape triangle = new Triangle(4, 3);
Shape circle = new Circle(5);
Console.WriteLine("Triangle area: " + triangle.GetArea());
Console.WriteLine("Circle area: " + circle.GetArea());
// 使用多态调用 GetArea() 方法
Shape polygon = new Triangle(5, 6); // 将圆也赋值给需要计算面积的 Shape 类型变量
Console.WriteLine("Polygon area (assumed to be a triangle): " + polygon.GetArea());
}
}
```
在这个例子中,`GetArea()`方法是在每个子类中被重写过的,所以当你通过`Shape`类型的指针调用它时,会根据实际指向的对象类型执行相应的计算。
阅读全文