2017-04-15 6 views
0

これは私が三つのクラスを持っている私のコード上記のコードでC#で継承を使用してメソッドの1つの子クラスへのアクセスを制限する方法は?

using System; 


public class parent 
{ 
    public virtual void m1(){ 

    } 
} 
public class child1:parent{ 

    public sealed override void m1(){ 

    } 
} 

public class child2:parent{ 

    public override void m1(){ //How to stop parent method here 

    } 

} 
public class Program 
{ 
    public static void Main() 
    { 
     Console.WriteLine("Hello World"); 
    } 
} 

です。親クラスには、子クラスのみに継承できる仮想メソッドが含まれています。 c#.netでchild2クラスの親メソッドを継承する方法を制限する方法。

+0

同じコードを貼り付けるエラーコピーはありません。うまくコンパイルできます。 –

+0

私もエラーは表示されませんが、child2クラスの親メソッドを制限したい –

+0

クラスを 'child1'だけに使用したい場合は、それをprivateの内部クラスにしないのはなぜですか?他のクラスが継承できるコードがクラス内に存在しない限り –

答えて

2

あなたの質問から、親クラスを制限したいのではなく、ただ1つのクラスだけで継承する必要があり、そのクラスから他のクラスを継承する必要はありません。

単純回答はいいえ。これはできません。

単純なルールは、makeクラスをpublicにし、メソッドをvirtualにして、n個のクラスで継承できる場合です。

+0

これはインターフェイスが重要な理由です。 –

関連する問題