抽象クラスとは
オブジェクト指向プログラミングでは、抽象クラスは、他のクラスに部分的な実装とインターフェイスを提供するために使用できる基本クラスを提供します。 それらはそれ自体では不完全であり、Java、C ++、C#などの多くのプログラミング言語の継承状況で使用されます。 基本クラスとしての使用は、それらがしばしば抽象基本クラス(ABC)と呼ばれることを意味します。
オブジェクト指向プログラミングの不可欠な部分であるデータ抽象化は、オブジェクトの不要な詳細を削除します。 基本的に、オブジェクトをその主要な識別特性まで煮詰めます。 これらの基本的な特性は、詳細が異なるだけで同じプロパティを持つ他のオブジェクトを作成するために使用できる設計図を提供します。
この設計図はクラスとして定義されています。 クラスは、コードをカプセル化するために使用され、プログラマーは、ルーチンを何度も書く代わりに特定の共通ルーチンを参照できるため、プログラマーが簡単になります。 プログラマーはクラスから子オブジェクトを作成し、これらのオブジェクトは親クラス内の関数とメソッドを継承します。
抽象クラスの目的は、他のクラスが構築されるフレームワークになることです。 オブジェクトを抽象クラスから直接作成することはできません。抽象クラスに属するサブクラスからのみ作成できます。 オブジェクトが抽象クラスから継承するには、サブクラスを作成する必要があります。 抽象クラスの作成されたサブクラスのオブジェクトは、その抽象クラスのプロパティを継承します。
すべてのクラスは概念をモデル化し、抽象クラスは抽象メソッドを使用してより抽象的な概念をモデル化する傾向があります。 抽象メソッドは、実装を含まない抽象クラス内のサブルーチンです。 これらのサブルーチンは、抽象メソッド自体を含むクラスに基づいて設計されたサブクラスまたはオブジェクトによって上書きされるプレースホルダーとして使用されます。
抽象クラスを作成するにはさまざまな方法があります。 たとえば、C ++では、少なくとも1つの抽象メソッドまたは純粋な仮想関数を持つクラスを開発することにより、抽象クラスが作成されます。 Javaは、「抽象」というキーワードを使用して、抽象クラスを示します。 ただし、継承の概念をサポートしないプログラミング言語では定義されていません。
継承とは、クラスから新しいオブジェクトを作成するプロセスです。新しいオブジェクトは、プログラムを再記述せずに、親クラス内で定義された関数とメソッドを使用できます。 これが抽象クラスが有用な理由です。 これらのサブクラスの子クラスと子オブジェクトは、親抽象クラスからプロパティを継承します。 抽象クラスはスーパークラスと見なされ、クラス構造階層の最上位にあるため、継承をサポートしない言語では意味がありません。