読み方 : ちゅうしょうがた

抽象型【abstract type】

概要

抽象型とは、プログラミング言語におけるデータオブジェクトの型の一種で、具体的な処理内容を記述せず、そのデータオブジェクトがどのような性質や振る舞いを持つべきかという枠組みだけを定義したもの。実装と利用を分離するために用いられる。
抽象型のイメージ画像

抽象型では、データの格納方法や処理の具体的な手順ではなく、どのような操作が可能か、どのような振る舞いをするかを定義する。抽象型自体は実装を定義しないため、そのものから直接インスタンスを作ることはできず、必ず具体的な内容を書き加えた「具象型」が必要となる。

例えば、スタックキューといったデータ構造を実装したオブジェクトには要素の追加や取り出しといった操作が定義されるが、これを配列で実装するか連結リストで実装するかといった詳細は抽象型には反映されず、ただ外部から見たデータ構造や操作法のみが定義される。

この考え方は、プログラム保守性再利用性を高めるために重要である。利用者は抽象型で定められた操作の仕方に従って使用するだけでよく、内部実装が変更されても外部インターフェースが変わらなければ影響を受けにくい。また、新しい具体的な型を追加する際、既存の抽象型のルールに従って作成すれば、他の部分を修正することなく新機能を組み込むことができる。

抽象型には、具象型の開発者に対して「このメソッドを必ず実装しなさい」と仕様を強制する役割もある。大規模な開発において、複数の人間が分担して作業を進める際、抽象型が共通の規格として機能することで、部品同士の組み合わせミスを防ぎ、堅牢なシステムを構築することができる。

プログラミング言語によって抽象型に相当する仕様の名称や詳細は異なっている。JavaやC#では「インターフェース」や「抽象クラス」が、C++言語では「仮想関数」および「純粋仮想関数」を含むクラスが、Objective-CSwiftでは「プロトコル」が抽象型に相当する機能を提供する。

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。