応用情報技術者 2009年 秋期 午前2 問44
問題文
オブジェクト指向におけるインヘリタンスの説明はどれか。
選択肢
ア:幾つかのオブジェクトを集めて、これらを成分とするオブジェクトを作成する。
イ:オブジェクトのデータ構造や値を隠ぺいし、オブジェクトの外部から直接、内部のデータにアクセスできないようにする。
ウ:基底クラスで定義したデータ構造と手続をサブクラスで引き継いで使用する。(正解)
エ:同一のデータ構造と同一の手続をもつオブジェクトをまとめて表現する。
オブジェクト指向におけるインヘリタンスの説明【午前2 解説】
要点まとめ
- 結論:インヘリタンスは基底クラスのデータ構造や手続きをサブクラスが引き継ぐ仕組みです。
- 根拠:これによりコードの再利用性が高まり、共通機能の一元管理が可能になります。
- 差がつくポイント:集約やカプセル化と混同せず、継承の「親子関係」に着目することが重要です。
正解の理由
選択肢ウは「基底クラスで定義したデータ構造と手続をサブクラスで引き継いで使用する」とあり、インヘリタンス(継承)の本質を正確に表現しています。継承は親クラスの属性やメソッドを子クラスが受け継ぎ、拡張や修正が可能になるため、オブジェクト指向の重要な特徴です。
よくある誤解
インヘリタンスを「オブジェクトの集まり」や「データ隠蔽」と混同しやすいですが、これらはそれぞれ集約やカプセル化の概念です。
解法ステップ
- 問題文の「インヘリタンス」の意味を確認する。
- 各選択肢の説明がどのオブジェクト指向の概念に該当するかを判断する。
- 「継承=親クラスの機能を子クラスが引き継ぐ」ことを思い出す。
- 選択肢ウが継承の定義に合致するため正解と判断する。
選択肢別の誤答解説
- ア:オブジェクトの集まりを作るのは「集約(アグリゲーション)」であり、継承とは異なります。
- イ:データの隠蔽は「カプセル化」の説明であり、継承の説明ではありません。
- ウ:正解。基底クラスの機能をサブクラスが引き継ぐ継承の説明です。
- エ:同一のデータ構造と手続きを持つオブジェクトの集合は「クラス」の説明であり、継承の説明ではありません。
補足コラム
インヘリタンスはオブジェクト指向の三大特徴の一つで、他に「カプセル化」と「ポリモーフィズム(多態性)」があります。継承を使うことでコードの重複を減らし、保守性を向上させることが可能です。
FAQ
Q: インヘリタンスと集約の違いは何ですか?
A: インヘリタンスは「親子関係」で機能を引き継ぐこと、集約は「部分と全体の関係」でオブジェクトを組み合わせることです。
A: インヘリタンスは「親子関係」で機能を引き継ぐこと、集約は「部分と全体の関係」でオブジェクトを組み合わせることです。
Q: 継承はどのようにコードの再利用に役立ちますか?
A: 基底クラスの共通機能をサブクラスが引き継ぐため、同じコードを繰り返し書く必要がなくなります。
A: 基底クラスの共通機能をサブクラスが引き継ぐため、同じコードを繰り返し書く必要がなくなります。
関連キーワード: インヘリタンス、継承、オブジェクト指向、カプセル化、集約、サブクラス、基底クラス

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

