令和5年度 プロジェクトマネージャ試験 午前II 問14
オブジェクト指向における汎化の説明として,適切なものはどれか。
- ア あるクラスを基に,これに幾つかの性質を付加することによって,新しいクラスを定義する。
- イ 幾つかのクラスに共通する性質をもつクラスを定義する。
- ウ オブジェクトのデータ構造から所有の関係を見つける。
- エ 同一名称のメソッドをもつオブジェクトを抽象化してクラスを定義する。
解答・解説を見る
正解:イ
AI解説
オブジェクト指向における汎化(generalization)とは、幾つかのクラスに共通する性質(属性・操作)を抽出して、それらの上位クラス(スーパークラス)として定義することである。逆に上位クラスに性質を付加して下位クラスを定義するのが特化(specialization)であり、is-a関係の方向(下位→上位が汎化)が判断基準となる。 ア: あるクラスに性質を付加して新しいクラスを定義するのは、汎化の逆方向である特化(継承によるサブクラスの定義)の説明である。 イ: 正しい。複数クラスに共通する性質をもつクラス(スーパークラス)を定義するのが汎化である。 ウ: データ構造から所有の関係(has-a/part-of)を見つけるのは、集約・コンポジションに関する説明である。 エ: 同一名称のメソッドをもつオブジェクトの抽象化は、多相性(ポリモーフィズム)を連想させる記述であり、汎化の定義ではない。 💡 「汎化=共通部分をくくり出して上へ」「特化=性質を足して下へ」と方向で覚える。is-a関係(サブクラス is a スーパークラス)が成り立つのが汎化・特化、has-a関係が集約である。
出典:令和5年度 秋期 プロジェクトマネージャ試験 午前II 問14 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。