C#设计一个形状类和矩形类,含有周长面积等属性

发布时间 2023-10-11 21:44:44作者: yhm138
public abstract class Shape
{
    protected double _area;
    protected double _perimeter;

    public double Area
    {
        get { return _area; }
    }

    public double Perimeter
    {
        get { return _perimeter; }
    }

    public abstract void ComputeAreaAndPerimeter();
}

public class Rectangle : Shape
{
    private double _height;
    private double _width;

    public double Height
    {
        get { return _height; }
        set
        {
            _height = value;
            ComputeAreaAndPerimeter();
        }
    }

    public double Width
    {
        get { return _width; }
        set
        {
            _width = value;
            ComputeAreaAndPerimeter();
        }
    }

    public override void ComputeAreaAndPerimeter()
    {
        _area = _height * _width;
        _perimeter = 2 * (_height + _width);
    }
}

优点:灵活性和可扩展性

缺点:需要更多的代码