継承クラスを定義する方法は? C#で
6 に答える
クラスを次のようにマークしますabstract(これは VB.NET に類似した C#Must Inheritです)。
これにより、直接インスタンス化できないことが保証されます。
リンクされた MSDN の記事から:
抽象修飾子は、変更されているものの実装が欠落しているか不完全であることを示します。抽象修飾子は、クラス、メソッド、プロパティ、インデクサー、およびイベントで使用できます。クラス宣言で抽象修飾子を使用して、クラスが他のクラスの基本クラスであることのみを意図していることを示します。抽象としてマークされたメンバー、または抽象クラスに含まれるメンバーは、抽象クラスから派生したクラスによって実装される必要があります。
(私のものを強調)
abstractモディファイヤを使用します。
public abstract class MyClass()
{
...
}
クラスを として定義するabstractか、保護のみのコンストラクターを指定できます。abstract優れている。
継承する必要があるクラスを作成する場合は、abstract修飾子でマークする必要があります。
public abstract MyClass
{
}
それが問題だった場合、コードでの派生または実装の必要性を強制することはできません。
だが:
interfaceコンシューマーに強制的に実装させるように定義できます。
または、抽象メンバーのみで定義して、コンシューマーにそれらすべてabstract classをオーバーライドするように強制することもできます。
お役に立てれば。