スポンサーリンク

問題の解答・解説ページ

このページは解説の閲覧モードです。
実力試しをしたい方は、下のボタンからクイズに挑戦してください!

この問題をクイズ形式で解く
問題 No.1818
オブジェクト指向プログラミングにおいて、共通の性質を持つ複数のクラスから、それらに共通する属性や操作を抽出して上位のクラスとして定義する概念はどれか。

【正解の解説】

抽象化

人間が「犬」「猫」「鳥」を見て、個別の違いを無視して「動物」という共通の大きな枠組みを頭の中で作り上げる作業と同じです。プログラミングにおいても、似たような部品がたくさんあるときに、共通部分をまとめて「親クラス」として定義することで、設計図をシンプルにし、開発の効率を劇的に高めることができます。

スポンサーリンク

【その他の選択肢の解説】

カプセル化

これは抽象化ではなくカプセル化の説明です。テレビのリモコンを想像してください。内部の複雑な配線や基盤を隠し、ユーザーは「ボタンを押す」という単純な操作だけでテレビを動かせるようになっています。このようにデータや処理を外部から保護し、正しい手順でしか触らせないようにする仕組みであり、共通部分を抽出する抽象化とは目的が異なります。

ポリモーフィズム

これはポリモーフィズム(多態性)の説明です。「鳴け」という同じ命令を出しても、犬は「ワン」と鳴き、猫は「ニャー」と鳴くように、相手の姿形や性質に合わせて異なる振る舞いをする概念です。共通の性質を抽出する抽象化とは異なり、実行時の振る舞いの多様性に焦点を当てた用語です。

インスタンス化

これはインスタンス化の説明です。建築の設計図(クラス)をもとに、実際に建物を建てる(インスタンスを生成する)作業に例えられます。設計図からモノを作るプロセスであり、複数の対象から共通部分を抜き出して上位の分類を作る「抽象化」とは逆の方向に向かう操作であるため、混同しないよう注意が必要です。