0

2 種類の基本クラスがあります。

public abstract class Base
{
    public abstract object Work();
}

public abstract class AuthenticatedBase : Base
{
    public abstract object Work(T request);
}

認証済みクラスは、事前にログインをチェックするために追加の作業を行います。次に、両方の基本クラスから拡張されたさまざまなクラスがあります。

public class A : Base
{
    public override object Work()
    {
        // Work here
    }
}

public class B : AuthenticatedBase
{
    public override object Work(T request)
    {
        // Work here
    }
}

基本的に、AuthenticatedBase から派生する新しいクラス B を作成すると、別のパラメーターを使用してオーバーライドしている AuthenticatedBase に別の実装があるにもかかわらず、Visual Studio は Base クラスから Work() を実装する必要があると言います。継承されたクラスの基本クラスから Work() メソッドを実装する必要がないようにするにはどうすればよいですか?

4

2 に答える 2

1

AuthenticatedBase にパラメーターなしの Work メソッドを実装し、"sealed" キーワードを使用して、AuthenticatedBase の継承で表示されないようにします。

于 2012-08-04T14:02:12.610 に答える
0

それを実装する必要があります。それを回避する方法はありません。これは、多重継承が役立つ場合です。

Bへの参照を持つように構成を使用できますA。その後、B.Work()呼び出すことができますA.Work()

B.Work()または、を呼び出すように実装してB.Work(T)ください。またはBase.Work()、 の基本実装を持つ仮想メソッドである場合もありますA

于 2012-08-04T13:59:28.347 に答える