令和7年試験問題 [科目A]問12
問12解説へ
オブジェクト指向プログラミングの特徴のうち,異なるクラスのオブジェクトを同一のインタフェースで操作したときに,操作対象クラスに応じた異なる動作を可能にすることを何と呼ぶか。
- 委譲
- 継承
- コンポジション
- 多相性
正解 エ問題へ
広告
解説
- 委譲(デリゲーション)は、あるオブジェクトに操作を、他のオブジェクトに委ねる仕組みです。操作が呼び出されると、内部で別のオブジェクトを作成し、そのオブジェクトに処理を実行させます。
- 継承(インヘリタンス)は、あるクラスが他のクラスの属性や振る舞いを引き継ぐ仕組みです。上位クラスの特性を下位クラスが引き継ぐことにより、下位クラスでは独自の機能(差分)のみを定義だけで済みます。
例えば、基本となる「動物」というクラスがあり、その中に動物に共通の一般的な特性・振る舞いが定義されているとします。この「動物」クラスから派生した「犬」や「猫」といったクラスには、「動物」クラスの特性・振る舞いが自動的に引き継がれます。 - コンポジションとは、あるクラスが別のクラスのインスタンスを自分の中に持ち、それを構成要素として利用する関係です。これは分解-集約(has-a)関係の一種であり、部品がそれ単体では存在できず、全体に強く依存している関係を意味します。
- 正しい。多相性(ポリモーフィズム)は、同じメッセージを送ってもオブジェクトによって異なる動作をする性質です。多態性・多様性とも呼ばれます。
例えば、犬クラスの「鳴く」という手続きを呼び出せば「ワン」、猫クラスの「鳴く」呼び出せば「ニャー」というように、同じメッセージでも受け取る側の性質によって操作内容が決まります。
広告