問題
問32
オブジェクト指向プログラミングにおいて、既存のクラスの機能を受け継ぎ、新しい機能を追加したり変更したりして、新しいクラスを作成する仕組みはどれか。
- カプセル化
- 多相性
- 継承
- 抽象化
正解
正解は「ウ」です。
解説
正解は「ウ」の継承です。継承は、オブジェクト指向プログラミングにおける重要な概念の一つで、あるクラス(親クラスやスーパークラス)が持つ性質(データやメソッド)を、別のクラス(子クラスやサブクラス)が引き継ぐことができる仕組みです。これにより、子クラスでは親クラスの機能を再利用できるため、同じようなコードを何度も書く必要がなくなり、プログラムの開発効率が向上します。また、子クラスでは、引き継いだ機能に加えて、独自の機能を追加したり、一部の機能を変更(オーバーライド)したりすることも可能です。
例えば、「動物」という親クラスに「鳴く」という機能を持たせ、それを継承して「犬」クラスや「猫」クラスを作成するとします。「犬」クラスでは「ワンと鳴く」、「猫」クラスでは「ニャーと鳴く」のように、親の機能を具体化しつつ、共通の性質はそのまま利用できます。このように、継承はプログラムの再利用性と拡張性を高めるための基本的な仕組みです。
ア(カプセル化):
データとそのデータを操作する手続きを一つにまとめ、内部の詳細を隠蔽する仕組みです。データの保護や保守性の向上が目的です。
イ(多相性):
同じ名前のメソッドでも、呼び出すオブジェクトによって異なる動作をする特性です。ポリモーフィズムとも呼ばれます。
エ(抽象化):
オブジェクトの共通の性質を抽出し、複雑な詳細を隠して本質的な部分だけを取り扱う考え方です。
解法のポイント
この問題は、オブジェクト指向の3大要素(継承、カプセル化、多相性)の基本的な意味を問うものです。「既存のクラスの機能を受け継ぐ」というキーワードが「継承」を指すことを理解していれば正解できます。それぞれの用語が持つ中心的な概念、例えば「継承=再利用性」「カプセル化=情報隠蔽」「多相性=多様な振る舞い」といった形で、キーワードと意味をセットで覚えておくことが重要です。これらの概念は頻出のため、確実に区別できるようにしておきましょう。
用語補足
継承:
親の性質を子が受け継ぐことです。親が持っている資産や特技を、子がそのまま引き継いで使えるようなイメージです。
オブジェクト指向:
プログラムを、モノ(オブジェクト)の作成と、それらの相互作用として捉える考え方です。現実世界のモノをモデルにすることで、分かりやすく保守性の高いプログラムを目指します。
クラス:
オブジェクトの設計図のようなものです。「自動車」というクラス(設計図)があれば、それをもとに「赤いスポーツカー」や「白いトラック」といった具体的なオブジェクト(製品)を作ることができます。
カプセル化:
データと処理をカプセルのように一つにまとめ、中身を隠すことです。利用者はリモコンのボタンを押すだけでテレビを操作でき、中の複雑な回路を意識する必要がないのと同じ考え方です。


