0

そのため、親クラス Point から継承する子クラス Line があり、子クラスで基本クラスのコンストラクターを使用していませんが、次のエラーが発生します。

'Shape.Point' には、0 引数を取るコンストラクターが含まれていません

これは私の親クラスです:

public class Point
{

   public Point(int x, int y)
   {
       X = x;
       Y = y;
   }
   public int X { get; set; }
   public int Y { get; set; }
}

これは私の子クラスです:

public class Line : Point
{
   public Point Start { get; set; }
   public Point End { get; set; }
   public double Lenght { get; set; }

    public Line(Point start , Point end)
    {
        Start = start;
        End = end; ;
    }


    public double Calculate_Lenght()
    {
        Lenght = System.Math.Sqrt((End.X - Start.X) ^ 2 + (End.Y - End.X) ^ 2);
        return Lenght;
    }
}
4

1 に答える 1

1

あなたPointは、

public Point(int x, int y)
{
   X = x;
   Y = y;
}

このLineコンストラクターを呼び出すか、実装する必要があります

また

public Line(int x, int y)
{
}

または

public Line(Point start, Point end)
   : base (...)
{
}

これは意味がないように思えますが、多分で拡張Lineしたくないと思います。Point

または、継承したい共通の機能が Point にある場合は、Point にパラメーターなしのコンストラクターを指定できます。

于 2013-10-13T10:00:46.050 に答える