C#の抽象クラスとは何ですか? | 定義、特性と例

プログラミングにおける抽象化とは、非常に重要ではあるが不要な情報を隠し、特定の重要な情報または必要な情報のみをユーザーに表示することを指します。 これは、抽象クラスを使用することで可能になります。

C# の抽象クラスは、本質的にオブジェクトの作成を許可しないクラスです。 「Abstract」は、特定のクラスまたはメソッドを抽象化または制限するキーワードまたは修飾子です。 抽象クラスは、別のクラスからの継承によってのみアクセスできます。

主要な取り組み

  1. 抽象クラスは、インスタンス化することはできませんが、他のクラスが継承するためのベースとして機能する不完全なクラスです。
  2. これらには、少なくとも XNUMX つの純粋仮想関数が含まれています。つまり、実装がなく、派生クラスによって定義される必要があります。
  3. 抽象クラスは、実装によってメンバー変数とメンバー関数を持つことができますが、抽象クラスのオブジェクトを介してアクセスすることはできません。

C# の Abstract クラスのプロパティとコンポーネント

抽象クラスを開始またはアクセスするには、特定の要素が必要です。 それらは次のようにリストされています。

  1. 抽象クラスは、いくつかの派生クラスによって共通にアクセスされる基本クラスを作成します。 プログラマは、抽象クラスを使用または実装する派生クラスを作成する必要があります。
  2. したがって、抽象クラスはサブクラスによって継承される必要があり、関数をオーバーライドすることさえあります。
  3. すべての抽象クラスには、少なくとも XNUMX つの抽象メソッドが必要です。
また読む:  JPEG と PSD: 違いと比較

C# の抽象クラスの例

このメカニズムは複雑で、プログラミング言語に精通している人にしか理解できないため、概念を説明するために簡単な例から始めるのが良いでしょう。

クラス「ツリー」が存在し、「タイプ」として知られる既存の設計されたメソッドがあるとします。 他に何も定義されておらず、他の特定の情報も提供されていません。ツリーの種類や可能なタイプはわかりません。

ツリーの特定の例が利用できる場合は、基本クラス Tree の継承を通じて別のクラスが作成されます。新しいクラス (Pine または Oak) は、基本クラス (つまり Tree) の構造または定義を変更できないという考え方です。新しいクラスは、Tree クラスから派生したクラスを作成し、基本クラスから継承した別のメソッドを定義する必要があります。

C# の抽象クラスの利点

  1. サブクラスは抽象クラスを実装するかオーバーライドするかを選択できますが、特定の関数を実装する必要がある特定の変更を加えることもできます。
  2. したがって、どのメソッドを命令的に実装する必要があるかに関して、抽象クラスを設計する際の柔軟性が非常に高くなります。
  3. プログラマーは、抽象クラスに必要な抽象メソッドの数を選択できます。 抽象メソッドを含めずにコードを記述することも可能です。
  4. 抽象クラスは一度だけ定義する必要があり、必要に応じて何度でもアクセスまたは派生できます。
  5. 抽象クラスは、ある程度の共通性はあるが抽象クラスの実装が異なる一連のクラスがある場合に非常に便利です。
また読む:  ノートンとクイックヒール: 違いと比較

C# の抽象クラスの欠点

  1. 抽象クラスが存在しない場合にのみ、抽象クラスをクラス階層に追加できます。
  2. 抽象クラスのオブジェクトは、参照のみ可能であり、作成することはできません。
  3. 抽象クラスはインスタンス化できませんが、静的変数またはメソッドは許可されません。
参考情報
  1. https://books.google.co.in/books?hl=en&lr=&id=UbJa11wLcqYC&oi=fnd&pg=PA125&dq=Abstract+Class+in+C%23&ots=y9lmboLlHj&sig=kk5oYAJSHpmo-FyHphcAlkUh4cc&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
  2. https://books.google.co.in/books?hl=en&lr=&id=-w9ftEtwPGwC&oi=fnd&pg=PP8&dq=Abstract+Class+in+C%23&ots=XXCx6-5nlm&sig=CYfs0myaTnm1anSz4QUGcZ65uS4&redir_esc=y#v=onepage&q=Abstract%20Class%20in%20C%23&f=false
ドット1
XNUMXつのリクエスト?

私はあなたに価値を提供するために、このブログ記事を書くことに多大な努力を払ってきました. ソーシャルメディアや友人/家族と共有することを検討していただければ、私にとって非常に役立ちます. 共有は♥️

サンディープ・バンダリ
サンディープ・バンダリ

Sandeep Bhandari は、Thapar University (2006) でコンピューター工学の学士号を取得しています。 彼はテクノロジー分野で 20 年の経験があります。 彼は、データベース システム、コンピュータ ネットワーク、プログラミングなど、さまざまな技術分野に強い関心を持っています。 彼の詳細については、彼のウェブサイトで読むことができます バイオページ.

23のコメント

  1. この投稿は、表現が少し皮肉的であることがわかりました。ただし、その説明は非常に興味深いものになります。

  2. この記事では、プログラミングにおける抽象化について非常に有益な説明を提供します。本当に魅力的だと思います。

  3. この記事ではメリットとデメリットをわかりやすく解説しています。 C# の抽象クラスについて学習することに興味がある人のための包括的なリファレンス。

  4. この記事では、C# の抽象クラスの利点を強調するだけでなく、欠点についても説明します。まさに徹底分析!

  5. 抽象クラスを設計する柔軟性は非常に興味深いと思います。この記事では、メリットとデメリットをわかりやすく解説しました。

  6. C# の Abstract クラスのプロパティとコンポーネントの詳細な内訳に本当に感謝しています。素晴らしい記事です!

コメントを残す

あなたのメールアドレスは公開されません。 必須フィールドは、マークされています *

後で読むためにこの記事を保存しますか? 右下のハートをクリックして自分の記事ボックスに保存!