プロジェクトマネージャ 2023年 午前2 問14
問題文
オブジェクト指向における汎化の説明として、適切なものはどれか。
選択肢
ア:あるクラスを基に、これに幾つかの性質を付加することによって、新しいクラスを定義する。
イ:幾つかのクラスに共通する性質をもつクラスを定義する。(正解)
ウ:オブジェクトのデータ構造から所有の関係を見つける。
エ:同一名称のメソッドをもつオブジェクトを抽象化してクラスを定義する。
🔒 解説は解答すると表示されます
汎化(一般化)【午前2解説】
正解の理由
汎化とは、複数のクラスに共通する性質を取り出し、それらをまとめた上位クラスを定義することです。
たとえば、「犬」と「猫」に共通する「名前」や「年齢」などの性質をまとめて、「動物」というクラスを定義するイメージです。この説明に当てはまるのはイです。
解法ステップ
- 「汎化」は、共通点をまとめて一般化することだと捉えます。
- 選択肢から「複数のクラスに共通する性質をもつクラスを定義する」という説明を探します。
- 該当するイを選びます。
選択肢別の誤答解説
- ア:既存のクラスに性質を加えて、より具体的なクラスを定義する説明です。これは汎化ではなく、特化に当たります。
- イ:複数のクラスに共通する性質をまとめたクラスを定義する説明であり、汎化に当たります。
- ウ:オブジェクト間の「所有」などの関係を見つける説明です。汎化ではなく、集約などの関係に関する考え方です。
- エ:同じ名称のメソッドに着目する説明です。汎化の定義ではありません。なお、同じメソッド名だけでクラスを定義できるわけではありません。
よくある誤解
- 汎化と特化を逆に覚えてしまうことがあります。共通点をまとめるのが汎化、性質を加えて具体化するのが特化です。
- クラス間の関係はすべて汎化だと思い込まないようにしましょう。「所有」などの関係は、汎化とは別の関係です。
- メソッド名が同じであれば汎化になるわけではありません。汎化では、クラスに共通する性質をまとめます。
補足コラム
汎化と特化は、クラス階層を反対の向きから見た概念です。「動物」から「犬」「猫」のように具体的なクラスへ分けていくのが特化であり、「犬」「猫」から共通する「動物」を定義するのが汎化です。
FAQ
汎化によって定義されるクラスは何と呼ばれますか?
一般に、共通の性質をまとめたクラスは上位クラスやスーパークラスと呼ばれます。
一般に、共通の性質をまとめたクラスは上位クラスやスーパークラスと呼ばれます。
汎化と継承は同じ意味ですか?
同じ意味ではありません。汎化はクラス間の関係を抽象化する考え方で、継承はその関係をプログラム上で実現する仕組みの一つです。
同じ意味ではありません。汎化はクラス間の関係を抽象化する考え方で、継承はその関係をプログラム上で実現する仕組みの一つです。
関連キーワード: 汎化、特化、クラス、継承、スーパークラス

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

