ネットワークスペシャリスト 2011年 午前2 問24
問題文
次のクラス図におけるクラス間の関係の説明のうち、適切なものはどれか。

選択肢
ア:“バス”、“トラック”などのクラスが“自動車”クラスの定義を引き継ぐことを、インスタンスという。
イ:“バス”、“トラック”などのクラスの共通部分を抽出し“自動車”クラスとして定義することを、汎化という。(正解)
ウ:“バス”、“トラック”などのクラスは、“自動車”クラスに対するオブジェクトという。
エ:“バス”、“トラック”などのそれぞれのクラスの違いを“自動車”クラスとして定義することを、特化という。
クラス図におけるクラス間の関係の説明【午前2 解説】
要点まとめ
- 結論:複数のクラスの共通部分を抽出し上位クラスとしてまとめることを「汎化」と呼びます。
- 根拠:図では「バス」「トラック」などの共通の特徴を「自動車」クラスに集約し、矢印で示す関係は汎化を表します。
- 差がつくポイント:インスタンスやオブジェクトとクラス間の関係を混同せず、汎化と特化の意味を正確に理解することが重要です。
正解の理由
選択肢イは、「バス」「トラック」など複数のクラスの共通部分を抽出し、「自動車」という上位クラスにまとめる行為を「汎化」と定義しており、クラス図の表現と一致します。
この関係は「is-a」関係とも呼ばれ、上位クラスが共通の属性や操作を持ち、下位クラスがそれを継承します。
したがって、イが正解です。
この関係は「is-a」関係とも呼ばれ、上位クラスが共通の属性や操作を持ち、下位クラスがそれを継承します。
したがって、イが正解です。
よくある誤解
「インスタンス」と「クラス」の違いを混同しやすいです。クラスは設計図、インスタンスはその実体であり、継承はクラス間の関係です。
また、「特化」は下位クラスが上位クラスから特徴を追加することであり、共通部分を抽出する「汎化」とは逆の概念です。
また、「特化」は下位クラスが上位クラスから特徴を追加することであり、共通部分を抽出する「汎化」とは逆の概念です。
解法ステップ
- クラス図の矢印の向きと種類を確認する。
- 矢印が上位クラスを指している場合、汎化(一般化)関係を示す。
- 「バス」「トラック」など複数のクラスの共通点を「自動車」クラスにまとめているかを判断。
- 選択肢の用語の意味を正確に理解し、図の関係と照合する。
- インスタンスやオブジェクトの説明が混ざっていないか注意する。
選択肢別の誤答解説
- ア:「インスタンス」はクラスの実体であり、継承関係を指す用語ではありません。
- イ:「汎化」は複数クラスの共通部分を抽出し上位クラスにまとめることを指し正解です。
- ウ:「オブジェクト」はクラスの実体であり、クラス間の関係を示す言葉ではありません。
- エ:「特化」は上位クラスから下位クラスが特徴を追加することであり、共通部分を抽出する「汎化」とは逆の意味です。
補足コラム
UML(統一モデリング言語)におけるクラス図では、矢印の向きや線の種類で関係性を表現します。
汎化は「一般化」とも呼ばれ、上位クラスが共通の属性や操作を持ち、下位クラスがそれを継承します。
特化は下位クラスが上位クラスの特徴を拡張することを意味し、設計の抽象度を調整する重要な概念です。
汎化は「一般化」とも呼ばれ、上位クラスが共通の属性や操作を持ち、下位クラスがそれを継承します。
特化は下位クラスが上位クラスの特徴を拡張することを意味し、設計の抽象度を調整する重要な概念です。
FAQ
Q: 汎化と継承は同じ意味ですか?
A: はい。汎化は複数クラスの共通部分を抽出し上位クラスにまとめることで、継承はその上位クラスの機能を下位クラスが受け継ぐことを指します。
A: はい。汎化は複数クラスの共通部分を抽出し上位クラスにまとめることで、継承はその上位クラスの機能を下位クラスが受け継ぐことを指します。
Q: オブジェクトとインスタンスは違いますか?
A: 基本的には同じ意味で、クラスから生成された実体を指します。
A: 基本的には同じ意味で、クラスから生成された実体を指します。
Q: 特化はどのような場面で使いますか?
A: 上位クラスの機能を拡張し、より具体的なクラスを作る際に使います。
A: 上位クラスの機能を拡張し、より具体的なクラスを作る際に使います。
関連キーワード: クラス図、汎化、継承、特化、UML, オブジェクト指向

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

