抽象化とインタフェースとは?ちゅうしょうかといんたふぇーす
抽象化は実装の詳細を隠して外から見える振る舞いだけを残す設計上の操作であり、インタフェースはその見える側を仕様として明文化したものである。呼ぶ側は仕様にだけ依存し、作る側は仕様を守る限り中身を自由に変えられる。この依存の向きの固定が、変更の影響範囲を切る仕掛けになる。
最終更新:2026-10-07
高度試験の午前Iを最短で暗記する →背景
ソフトウェアの保守費用の大半は、変更が他所へ波及することから生じる。呼ぶ側が具体的な実装を直接知っていると、実装を差し替えるたびに呼び出し元をすべて直す必要がある。間に仕様の層を1枚挟むだけで変更の伝播をそこで止められる、というのが分離の基本手筋である。
具体例
「図形」というインタフェースに「面積を求める」とだけ定めておけば、円と四角形が別々の式で実装しても、呼ぶ側は同じ書き方で面積を得られる(多相性)。JavaでList型を引数に取る処理が、ArrayListでもLinkedListでも動くのが実物の例である。
試験での引っ掛け
インタフェースは仕様だけで実装を持たない点が、実装を一部持てる抽象クラスとの分かれ目になる。多重継承を制限する言語でも、インタフェースは複数実装できる。またカプセル化(内部データを外から触らせない情報隠蔽)とは別概念で、混同させる出題がある。
関連用語
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。