/// <summary>
/// 形状基类
/// </summary>
public abstract class Shape
{
/// <summary>
/// 形状名称
/// </summary>
public string ShapeName { get; private set; }
public Shape(string shapeName)
{
ShapeName = shapeName;
}
/// <summary>
/// 输出形状周长
/// </summary>
public virtual void PrintPerimeter(double perimeter)
{
Console.WriteLine(ShapeName + " Perimeter: " + perimeter);
}
/// <summary>
/// 输出形状面积
/// </summary>
public virtual void PrintArea(double area)
{
Console.WriteLine(ShapeName + " Area: " + area);
}
/// <summary>
/// 计算形状周长
/// </summary>
/// <returns></returns>
public abstract double CalculatePerimeter();
/// <summary>
/// 计算形状面积
/// </summary>
/// <returns></returns>
public abstract double CalculateArea();
}
/// <summary>
/// 圆
/// </summary>
public class Circle : Shape
{
/// <summary>
/// 圆的半径
/// </summary>
public double R { get; set; }
public Circle()
: base("Circle")
{
this.R = 0;
}
/// <summary>
/// 圆的周长
/// </summary>
/// <returns></returns>
public override double CalculatePerimeter()
{
return 2 * Math.PI * R;
}
/// <summary>
/// 圆的面积
/// </summary>
/// <returns></returns>
public override double CalculateArea()
{
return Math.PI * R * R;
}
}
public class Rectangle : Shape
{
/// <summary>
/// 长方形的长度
/// </summary>
public double Width { get; set; }
/// <summary>
/// 长方形的高度
/// </summary>
public double Height { get; set; }
public Rectangle()
: base("Rectangle")
{
Width = 0;
Height = 0;
}
/// <summary>
/// 长方形的周长
/// </summary>
/// <returns></returns>
public override double CalculatePerimeter()
{
return (Width + Height) * 2;
}
/// <summary>
/// 长方形的面积
/// </summary>
/// <returns></returns>
public override double CalculateArea()
{
return Width * Height;
}
}
Circle circle = new Circle();
circle.R = 20;
Square square = new Square();
square.Edge = 10;
Rectangle rectangle = new Rectangle();
rectangle.Width = 20;
rectangle.Height = 30;
// 把子类赋给父类,能更好的体现多态性
IList<Shape> shapeList = new List<Shape>();
shapeList.Add(circle);
shapeList.Add(square);
shapeList.Add(rectangle);
foreach (var shape in shapeList)
{
shape.PrintPerimeter(shape.CalculatePerimeter());
shape.PrintArea(shape.CalculateArea());
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有