c#用多态实现求圆的面积和周长(矩形,三角形)
时间: 2024-06-14 22:05:44 浏览: 117
c#窗口应用程序求圆的周长面积
5星 · 资源好评率100%
以下是使用C#多态实现求圆的面积和周长、矩形的面积和周长、三角形的面积和周长的示例代码:
```csharp
using System;
// 定义一个抽象类Shape
abstract class Shape
{
public abstract double GetArea(); // 获取面积的抽象方法
public abstract double GetPerimeter(); // 获取周长的抽象方法
}
// 定义圆形类Circle,继承自Shape
class Circle : Shape
{
private double radius; // 圆的半径
public Circle(double radius)
{
this.radius = radius;
}
public override double GetArea()
{
return Math.PI * radius * radius; // 计算圆的面积
}
public override double GetPerimeter()
{
return 2 * Math.PI * radius; // 计算圆的周长
}
}
// 定义矩形类Rectangle,继承自Shape
class Rectangle : Shape
{
private double length; // 矩形的长度
private double width; // 矩形的宽度
public Rectangle(double length, double width)
{
this.length = length;
this.width = width;
}
public override double GetArea()
{
return length * width; // 计算矩形的面积
}
public override double GetPerimeter()
{
return 2 * (length + width); // 计算矩形的周长
}
}
// 定义三角形类Triangle,继承自Shape
class Triangle : Shape
{
private double side1; // 三角形的边长1
private double side2; // 三角形的边长2
private double side3; // 三角形的边长3
public Triangle(double side1, double side2, double side3)
{
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public override double GetArea()
{
double p = (side1 + side2 + side3) / 2; // 计算半周长
return Math.Sqrt(p * (p - side1) * (p - side2) * (p - side3)); // 计算三角形的面积
}
public override double GetPerimeter()
{
return side1 + side2 + side3; // 计算三角形的周长
}
}
// 测试代码
class Program
{
static void Main(string[] args)
{
// 创建一个圆形对象
Circle circle = new Circle(5);
Console.WriteLine("圆的面积:{0}", circle.GetArea());
Console.WriteLine("圆的周长:{0}", circle.GetPerimeter());
// 创建一个矩形对象
Rectangle rectangle = new Rectangle(4, 6);
Console.WriteLine("矩形的面积:{0}", rectangle.GetArea());
Console.WriteLine("矩形的周长:{0}", rectangle.GetPerimeter());
// 创建一个三角形对象
Triangle triangle = new Triangle(3, 4, 5);
Console.WriteLine("三角形的面积:{0}", triangle.GetArea());
Console.WriteLine("三角形的周长:{0}", triangle.GetPerimeter());
}
}
```
阅读全文