抽象クラス
抽象クラスとは、オブジェクト指向プログラミングにおいて用いられる特殊なクラスの宣言であり、その内部には実装を持たないという機能の分からない、名前の通り抽象的なクラスです。
抽象クラスは、その特徴としてクラス自身はオブジェクトの実体、インスタンスを生成できません。抽象クラスは主にそのクラスを親クラス(基本クラス)とした子クラス(派生クラス)を定義(継承)する前提で作製されるクラスです。基本クラスの抽象クラスを作った段階では実装や機能は決定せず、派生クラスができた段階で初めて機能を持ちます。
定義する時には、abstruct等の語句をクラス定義時に示すことで抽象クラスであることを示します。そして、その中身には実装を持たないメソッドを宣言します。このメソッドが基本クラスでオーバーライドされることで、初めて機能を持ちます。いわゆる多態性、ポリモーフィズムを生むための存在です。利用時には、抽象クラスのポインタに派生クラスのインスタンスを入れておくことで、抽象クラスのメソッドを呼び出すだけでオーバーライドして様々な派生クラスのメソッドを呼び出すことができます。