抽象化 【abstraction】

概要

抽象化(abstraction)とは、対象から細部や具体性を取り去り、本質的に重要な要素や、着目している側面のみを取り出して、一つの概念として定義すること。また、異なる複数の対象に共通する性質や要素を見出し、共通点を組み合わせて汎用的な概念を構成すること。

ソフトウェア開発における抽象化

ITの分野では、ソフトウェアの設計・開発やプログラミングで特に多用される概念で、制御の抽象化とデータの抽象化に分かれる。

例えば、プログラム中の様々な箇所で似たような具体的な処理を行っているときに、これを一つの汎用的なサブルーチンとして独立させ、必要な箇所から呼び出して利用するようにしたり、複数のプログラムで共通する機能をモジュールやコンポーネントなどの形に抜き出すことが該当する。

オブジェクト指向プログラミングでは、ある対象を表すデータ群と手続きを一体のオブジェクト(の雛形であるクラス)として定義するが、これも対象をプログラム上で扱うための一種の抽象化と考えることができる。

複数の具体的な対象を表すクラスから共通するデータや操作を取り出してスーパークラス基底クラス/親クラス)を定義する場合があり、これを抽象化と呼ぶことがある。宣言だけがあり実装がサブクラス派生クラス/子クラス)に任されている抽象メソッドを含むクラスは特に「抽象クラス」(abstract class)と呼ばれる。

(2020.6.3更新)