2012-02-03 23 views

答えて

14

抽象クラスには、通常、1つ以上の抽象メソッドがあります。そう、はい、いくつかの方法を実装することができます。目標は、オブジェクトを動作させるためにこれらのメソッドを実装するようユーザーに強制することです。時には抽象クラスを使用していくつかのインタフェースの '基本'実装を提供し、最終的なユーザにキーメソッドを指定させます。抽象メソッドを持たない抽象クラスを持つこともできます:この場合、そのクラスからそれを派生させて使用する必要があると主張しています。

+5

抽象メソッドを持たない抽象クラスを作成することができます。クラスを抽象クラスとしてマークするだけです。 –

+2

抽象クラスは、インスタンス化するために継承する必要があることを意味します。 Kirill Polishchukが指摘したように抽象的な方法を持つべきであることを暗示するものではありません。 – ken2k

+0

@KirillPolishchukオキアミ、ありがとう、私はそれに気付かなかった、私は答えを修正しました。 –

1

はい。 abstractクラスをインスタンス化することはできません(抽象クラ​​スから継承するクラスをインスタンス化する必要があります)が、実装を含むことができます。

1

いくつかのメソッドを実装し、他のメソッドを抽象的なままにしても問題ありません。

すべてのメソッドが抽象クラスでなければならない場合は、インターフェイスを使用することもできます。

0

abstract classには少なくとも実装されていないインスタンス(インスタンス化できない)のメンバー(メソッド/プロパティ)があります。

interfaceとも呼ばれます(つまり、pure abstract class)。これは100%抽象であるため、実装を指定することはできません。

具体的なクラスから具体的なクラスを導き出すことは絶対にありませんが、抽象的なクラスのみから導出することについての多くの記事や意見があります...少なくともこれは数年前のC++の傾向でした。 C#側では、より多くの作業を開始し、それらの素敵な記事を読み続ける時間がなかった... :)

+3

C#で抽象メンバを持たない抽象クラスを持つことができます –

6

抽象クラスではいくつかの実装が一般的です。

実装がまったくない場合は、抽象クラスではなくインターフェイスを使用することを検討してください。

関連する問題