0

C# で、子クラスが継承された抽象データ メンバーを実装していないというコンパイル エラーが発生します。

構造は本質的にこれです:

public abstract class Transaction
{
    public abstract int MyMethod();
}

public abstract class GeneralTransaction : Transaction
{
    public override int MyMethod()
    {
        return 1;
    }
}

public class SpecificTransaction : GeneralTransaction
{
}

SpecificTransaction は MyMethod を実装していないと言っていますが、なぜそうしなければならないのでしょうか? GeneralTransaction クラスはそれを実装し、SpecificTransaction クラスはそのクラスを継承していますか?

4

1 に答える 1

1

残念ながら、あなたの構造はこれよりも複雑です。この例は問題なく動作します。

class Program
{
    static void Main(string[] args)
    {
        var tr = new SpecificTransaction();
        Console.WriteLine(tr.MyMethod()); //shows 1
    }
}

public abstract class Transaction
{
    public abstract int MyMethod();
}

public abstract class GeneralTransaction : Transaction
{
    public override int MyMethod()
    {
        return 1;
    }
}

public class SpecificTransaction : GeneralTransaction
{
}
于 2012-09-24T00:23:29.133 に答える