基本情報技術者試験の令和7年度の公開問題(科目A)を解こう。
今回のテーマは、「オブジェクト指向プログラミングの特徴」である。
問12
オブジェクト指向プログラミングの特徴のうち、異なるクラスのオブジェクトを同一のインタフェースで操作したときに,操作対象クラスに応じた異なる動作を可能にすることを何と呼ぶか。
ア 委譲
イ 継承
ウ コンポジション
エ 多相性
正解:エ
各肢を検討しよう。
ア 誤り。
委譲(デリゲーション)
自分で行うべき処理を、他のオブジェクトに任せること。
イ 誤り。
継承(インヘリタンス)
すでにあるクラスの機能を引き継ぎ、新しいクラスを作ること。「親子関係」を作るイメージである。
ウ 誤り。
コンポジション
あるクラスの機能の一部として、別のクラスを部品のように組み込むこと。「持っている(Has-a)」の関係である。
エ 正しい。
多相性(ポリモーフィズム)とは?
多相性を一言でいうと、「送り手は同じ命令を出しているのに、受け取り手によって動きが変わる」 という性質のことである。
具体的なイメージ:命令「鳴け!」
例えば、「動物」というグループの中に「イヌ」と「ネコ」がいるとしよう。
- 飼い主(操作側)が、イヌにもネコにも共通して「鳴け!」という同じ命令(共通のインタフェース)を送る。
- すると、イヌは「ワン!」と鳴き、ネコは「ニャー」と鳴く。
このように、操作する側は相手が具体的に誰かを深く気にせず「鳴け」とだけ言えば、相手(クラス)に応じた適切な動きをしてくれる。これが「多相性」の本質である。


コメント