2012-06-23 11 views

答えて

31

あなたはabstract(これはVB.NET Must Inheritに類似したC#です)としてクラスをマークします。

これにより、インスタンスを直接インスタンス化することはできません。リンクMSDNの記事から

abstract修飾子が変更されているものが見つからないか、不完全な実装を持っていることを示しています。抽象修飾子は、クラス、メソッド、プロパティ、インデクサ、およびイベントで使用できます。 クラス宣言で抽象修飾子を使用すると、あるクラスが他のクラスの基本クラスであることのみを示すようになります。抽象クラスとして派生したクラスは、抽象クラスとして宣言されたメンバー、または抽象クラスに含まれているメンバーを実装する必要があります。

(強調鉱山)

+1

にも取り上げられていますが、抽象クラスとして定義すると、継承する必要があることを意味しますか? – thechmodmaster

+1

@thechmodmaster - そうしたクラスのインスタンスを直接作成することはできません。そこから継承するクラスのインスタンスのみを作成できます。それが "継承されなければなりません"というあなたの考え方に合っていれば、わかりません。それは私のものと一致します。 – Oded

+0

それは私に論理的に聞こえる....仕事からの質問間違い – thechmodmaster

4

あなたはabstractとしてクラスを定義する、またはそれに保護された専用のコンストラクタを与えることができます。 abstractが良いです。

5

abstract修飾語を使用してください。

public abstract class MyClass() 
{ 
    ... 
} 
1

ということが問題だった場合は、コード内の派生または実装の可能性enforseのneednessではありません。

しかし:

あなたはそれを実装に消費者を強制的にinterfaceを定義することができます。

抽象メンバーだけでabstract classを定義して、消費者にのすべてをに上書きさせることができます。

これが役に立ちます。

+0

はい、それは私が言いたいことです:それを継承するために必要な方法でクラスを定義する方法。このクラスが継承されることを確認します。 – thechmodmaster

3

あなたが継承する必要があるクラスを作成したい場合は、abstract修飾子を付けてマークする必要があります。

public abstract MyClass 
{ 
} 
関連する問題