応用情報技術者 2024年 春期 午前2 問45
問題文
オブジェクト指向におけるクラス間の関係のうち、適切なものはどれか。
選択肢
ア:クラス間の関連は、二つのクラス間でだけ定義できる。
イ:サブクラスではスーパークラスの操作を再定義することができる。(正解)
ウ:サブクラスのインスタンスが、スーパークラスで定義されている操作を実行するときは、スーパークラスのインスタンスに操作を依頼する。
エ:二つのクラスに集約の関係があるときには、集約オブジェクトは部分となるオブジェクトと、属性及び操作を共有する。
オブジェクト指向におけるクラス間の関係のうち、適切なものはどれか【午前2 解説】
要点まとめ
- 結論:サブクラスはスーパークラスの操作を再定義(オーバーライド)できるため、イが正解です。
- 根拠:オブジェクト指向の継承では、サブクラスがスーパークラスのメソッドを独自に実装し直すことが可能です。
- 差がつくポイント:関連や集約の定義の誤解を避け、継承の基本的な特徴を正確に理解することが重要です。
正解の理由
イの「サブクラスではスーパークラスの操作を再定義することができる」は、オブジェクト指向の継承におけるポリモーフィズムの基本です。サブクラスはスーパークラスのメソッドをオーバーライドし、独自の振る舞いを実装できます。これにより柔軟で拡張性の高い設計が可能となります。
よくある誤解
- 関連は必ず二つのクラス間だけで定義されるわけではありません。多重関連も存在します。
- サブクラスのインスタンスがスーパークラスのインスタンスに操作を依頼することはありません。操作は自身のメソッドを呼び出します。
- 集約オブジェクトは部分オブジェクトと属性や操作を共有しません。あくまで「全体」と「部分」の関係を表します。
解法ステップ
- 各選択肢の用語(関連、継承、集約)の意味を正確に理解する。
- 継承の特徴として「メソッドの再定義(オーバーライド)」が可能であることを確認する。
- 関連や集約の定義と異なる記述を除外する。
- 正しい継承の説明であるイを選択する。
選択肢別の誤答解説
- ア:関連は二つのクラス間だけでなく、多重関連や自己関連も可能で誤り。
- イ:正解。サブクラスはスーパークラスの操作を再定義できる。
- ウ:サブクラスのインスタンスはスーパークラスのインスタンスに操作を依頼しない。自身のメソッドを実行するため誤り。
- エ:集約は「全体」と「部分」の関係であり、属性や操作を共有するわけではないため誤り。
補足コラム
オブジェクト指向のクラス間関係には「継承」「関連」「集約」「コンポジション」などがあります。継承はコードの再利用と多態性を実現し、関連はクラス間の関係性を示し、集約は部分と全体の関係を表します。これらの違いを正確に理解することが設計力向上に繋がります。
FAQ
Q: サブクラスはスーパークラスのメソッドを必ず再定義しなければなりませんか?
A: いいえ、再定義は任意であり、必要に応じてオーバーライドします。
A: いいえ、再定義は任意であり、必要に応じてオーバーライドします。
Q: 集約とコンポジションの違いは何ですか?
A: 集約は部分が全体から独立して存在可能ですが、コンポジションは部分が全体に強く依存し、全体の寿命に従います。
A: 集約は部分が全体から独立して存在可能ですが、コンポジションは部分が全体に強く依存し、全体の寿命に従います。
関連キーワード: オブジェクト指向、継承、ポリモーフィズム、クラス間関係、集約、関連、オーバーライド

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

