3

たぶん、タイトルは紛らわしいです。

例を挙げましょう:

public abstract class Base
{
    protected abstract void DoSomething();
}

public abstract class BaseA : Base
{
    protected abstract void DoSomething();
}

public class ClassA1 : BaseA
{
    protected override void DoSomething()
    {
        // do something!
    }
}

public class ClassA2 : BaseA
{
    protected override void DoSomething()
    {
        // do something!
    }
}

このコードでは、これは私の実際のプロジェクトと同様のシナリオです。基本クラスがあります。しかし、基本クラスを再度抽象化する必要があることに気付いたので、メソッドDoSomethingを再度抽象化する必要があり、具象クラスがある場合はそれをオーバーライドしたいと思います。

良い習慣ですか?または、メソッドを2回抽象化するように設定したため、問題がありますか?

4

1 に答える 1

3

BaseA;でメソッドを宣言する必要はありません。そのすべてのサブクラスは、その親を介してそれを継承します。

これabstract override は、具体的なメソッドをサブクラスの抽象として再定義する場合に役立ちます。

于 2012-07-16T01:23:55.607 に答える