令和3年度 春期 午前Ⅱ 問6
設計
汎化の説明
オブジェクト指向における汎化の説明として,適切なものはどれか。
- アあるクラスを基に,これに幾つかの性質を付加することによって,新しいクラスを定義する。
- イ幾つかのクラスに共通する性質をもつクラスを定義する。
- ウオブジェクトのデータ構造から所有の関係を見つける。
- エ同一名称のメソッドをもつオブジェクトを抽象化してクラスを定義する。
答えと解説を見る
✓ これが正解イ幾つかのクラスに共通する性質をもつクラスを定義する。
解説
複数のクラスに共通する性質をもつクラスを定義するのが汎化です。
汎化は、幾つかのクラスに共通する属性や操作を取り出し、それらをまとめた上位のクラスを定義することです。例えば、普通預金と定期預金に共通する性質を抜き出して預金というクラスを作るような関係で、下位のクラスは上位のクラスの一種であるという関係になります。見分ける軸は作業の向きです。共通部分を探して上へまとめるのが汎化で、逆に、あるクラスを基にして性質を付け加え、下位のクラスを作るのは特化です。全体と部分の関係や、メソッドの名前がそろっていることだけでまとめるのは、汎化の考え方とは別のものです。汎化は共通をくくり出して上へ、特化は付け足して下へ、と向きで覚えてください。
ほかの選択肢はなぜ違うのか
- アあるクラスを基に,これに幾つかの性質を付…:あるクラスを基にして性質を付け加え、新しいクラスを定義するのは特化の説明です。汎化と特化は上下が逆向きの関係で、共通部分をまとめて上位のクラスを作る作業とは方向が反対です。
- ウオブジェクトのデータ構造から所有の関係を…:オブジェクトのデータ構造から所有の関係を見つけるのは、全体と部分の関係を捉える集約の考え方です。共通する性質をまとめて上位のクラスを作る、一種であるという関係とは異なります。
- エ同一名称のメソッドをもつオブジェクトを抽…:同一名称のメソッドをもつというだけでクラスにまとめても、性質全体が共通しているとは限りません。汎化は属性や操作を含めた共通の性質を取り出してまとめるもので、名前の一致だけを根拠にするものではありません。
出典:令和3年度 春期 システムアーキテクト試験 午前Ⅱ 問6
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)