本文へ移動

基本情報技術者試験 · 学習ガイド

オブジェクト指向と多相性

多相性とは

多相性とは、同じ呼び出し方でも、実際のオブジェクトの種類に応じて異なる処理が選ばれる性質です。

エルくんが面積()の共通スタンプを円と長方形へ押すと、それぞれの計算式カードが出る図。
同じ面積操作でも、実際の図形の種類で計算方法が変わります。呼び出し方を共通にし、種類別の実装を利用できる性質が多相性です。

似た処理を種類ごとに条件分岐で書き続けると、新しい種類を追加するたびに修正箇所が増えます。共通の呼び出し方と、種類別の実装を分けます。

基本の仕組み

基本の仕組みの図解。上部の「面積を求める」ボタンから矢印を二股に分け、左の円と右の長方形につなぐ。各図形の下には別々の計算処理枠を置き、図形によって処理が変わることを示す。
覚えること:同じ操作でも図形で処理が変わる

図形に面積を求める操作を定め、円と長方形で計算方法を実装すれば、利用側は同じ操作で面積を求められます。実際の図形の種類によって処理が変わるのが多相性です。

クラスは属性と操作を定義し、オブジェクトはその具体的な実体です。カプセル化は内部状態へのアクセスを管理し、継承は既存の定義を引き継ぎます。継承先で操作の実装を置き換えるのがオーバーライドです。

同じ名前でも引数が違うオーバーロードと、継承した操作を再定義するオーバーライドは別です。継承すれば常に良い設計になるわけではなく、親として扱ったときに約束した振る舞いを守れるかを確かめます。

オブジェクト指向の基本

オブジェクト指向の基本の図解。中央の縦線で左右を分ける。左は下の「円」から上の「図形」へ「一種」の矢印を伸ばし、右は「自動車」の輪郭の内側に「エンジン」を配置して、種類の関係と全体・部分の関係を対比する。
覚えること:is-aは種類、part-ofは部分

クラス間の関係では、汎化と特化(is-a関係)と、集約(part-of関係)を区別します。「円は図形の一種」のように共通の性質を上位のスーパークラスにまとめるのが汎化、その逆に下位のサブクラスへ具体化するのが特化です。「エンジンは自動車の一部」のような全体と部分の関係が集約です。

委譲は、あるオブジェクトが受け取った処理の要求を、別のオブジェクトに任せて実行させる仕組みです。継承を使わずに機能を再利用する方法として使われます。

オブジェクト指向の基本
概念意味
カプセル化データと操作をまとめ、内部を隠す
継承スーパークラスの性質をサブクラスが受け継ぐ
多相性同じ呼出しで、実際の種類に応じて実装が変わる
汎化・特化(is-a)共通の性質を上位にまとめる・下位で具体化する
集約(part-of)全体と部分の関係
委譲処理の要求を別のオブジェクトに任せる

試験に出る

  • 多相性は、同じ呼び出しでも実際の種類に応じて処理が変わる性質である点。
  • クラス(属性と操作の定義)とオブジェクト(その実体)の違い。
  • カプセル化は内部状態へのアクセスを管理する考え方。
  • オーバーロード(引数が違う同名の操作)とオーバーライド(継承先での再定義)の区別。
  • 継承すれば常に良い設計になるわけではなく、親として扱ったときの振る舞いを守れるかを確かめる点。
  • 汎化・特化(is-a関係)と集約(part-of関係)の区別。

重要な言葉

多相性
同じ呼び出しでも実際の種類に応じて処理が変わる性質。
カプセル化
内部状態へのアクセスを管理する考え方。
オーバーライド
継承先で親の操作の実装を置き換えること。
オーバーロード
同じ名前で引数の異なる操作を定義すること。
汎化
複数のクラスに共通する性質を上位のクラスにまとめること(is-a関係)。

確認問題

確かめよう利用側が円か長方形かを毎回判定しなくても面積操作を呼べる性質は?

多相性です。

多相性とは、同じ呼び出し方でも実際の種類に応じて処理が変わる性質である。

オーバーロードとオーバーライドは同じ意味である。

継承先で親の操作の実装を置き換えることを何といいますか。

利用側が種類を判定しなくても同じ操作を呼べる性質は?

似た処理を種類ごとに条件分岐で書き続けると、新しい種類を追加するたびに修正箇所が増えます。共通の呼び出し方と、種類別のを分けます。

図形に面積を求める操作を定め、円と長方形で計算方法を実装すれば、利用側は同じ操作で面積を求められます。実際の図形の種類によって処理が変わるのがです。

は属性と操作を定義し、はその具体的な実体です。カプセル化は内部状態へのアクセスを管理し、継承は既存の定義を引き継ぎます。継承先で操作の実装を置き換えるのがオーバーライドです。

同じ名前でも引数が違うと、継承した操作を再定義するは別です。継承すれば常に良い設計になるわけではなく、親として扱ったときに約束した振る舞いを守れるかを確かめます。

出典・参考資料

試験の公式案内と、この記事の参考にした学習資料です。

編集:Pinternet Works · 更新日:

教材の編集方針・訂正について