抽象クラス | Programming Place Plus 用語集

トップページ用語集

名称

解説

オブジェクト指向におけるクラスのうち、インスタンス化することができない特殊なクラスのことです。

抽象クラス(あるいはそれと同等といえるもの)を定義する方法はプログラミング言語によって違いがありますが、多くの場合、クラスの定義の中で、抽象メソッドと呼ばれる、実装をもたない特殊なメソッド宣言します。クラスやメソッドに「abstract」のようなキーワードを付加する場合もあります。抽象メソッド以外にもメソッドを宣言できる言語と、できない言語があります。

インスタンス化できるようにするためには、抽象クラスを継承したサブクラスを定義して、サブクラスの側で抽象メソッドを実装(オーバーライド)します。すべての抽象メソッドに実装が与えられると、サブクラスのほうをインスタンス化できるようになります。つまり抽象クラスは、そこから作られるすべてのサブクラスが共通してもたなければならない処理(メソッド)の要件だけを宣言したものといえます。

抽象クラスに対比して、インスタンス化できるクラスを具象クラスと呼ぶことがあります。

C++ の場合

C++ で抽象クラスを定義するには、純粋仮想関数を含んだクラスを定義します。純粋仮想関数を宣言しているクラスはインスタンス化できません。

純粋仮想関数が抽象メソッドの役割をしており、派生クラスでオーバーライドすることでインスタンス化できるようになります。

C++ の場合、純粋仮想関数以外のメンバの宣言に特に制限はありません。そのため、抽象クラスとインターフェースの実現方法に違いがありません(純粋仮想関数以外のメンバを持たなければインターフェースであると捉えることが多い)。

抽象クラスやインターフェースについての解説が、C++編【言語解説】第29章にあります。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る