我的课程Ellipse应该从我的课程Shape继承,但是出现以下错误消息:


  错误1'ConsoleApplication3.Ellipse'未实现继承的抽象成员'ConsoleApplication3.Shape.Perimeter.get'


我还收到错误消息,提示我隐藏了Area,这是Ellipse中的一个属性。

谁能帮我吗?

我的形状类如下所示:

public abstract class Shape
{
    //Protected constructor
    protected Shape(double length, double width)
    {
        _length = length;
        _width = width;
    }


    private double _length;
    private double _width;

    public abstract double Area
    {
        get;
    }


我的椭圆课是:

class Ellipse : Shape
{
    //Constructor
    public Ellipse(double length, double width)
        :base(length, width)
    {

    }

    //Egenskaper
    public override double Area
    {
        get
        {
            return Math.PI * Length * Width;
        }
    }
}

最佳答案

您需要在Ellipse类的Area和Perimeter属性中使用override修饰符,例如

public override double Area { get; }

public override double Perimeter { get; }


在Visual Studio中为您提供的提示,将光标置于文本“ Shape”(在椭圆类中)内,然后按Ctrl +.。这应该为尚未实现的成员添加存根

关于c# - 覆盖属性不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8639579/

10-14 01:43