メインコンテンツへ
開発技術システム開発技術

オブジェクト指向の「ポリモーフィズム(多態性)」の説明として、最も適切なものはどれか。

ア.オブジェクトのデータ(属性)と操作(メソッド)を一つのクラスとして包み込み、外部から直接アクセスできないようにする仕組み
イ.既存クラスの属性とメソッドを引き継いで新しいクラスを定義する仕組み
ウ.同じメソッド名の呼び出しに対して、オブジェクトの実際の型に応じて異なる処理が実行される仕組み正解
エ.クラス定義からメモリ上に具体的なオブジェクトを生成するプロセス

解説

ポリモーフィズムは「同じ「鳴け」という命令に、犬は「ワン」、猫は「ニャー」、鳥は「チュン」と答える仕組み」。呼び出す側はどんな動物かを気にしなくていい——それが多態性の魔法です。

なぜ ウ が正解か

ポリモーフィズム(多態性)は、同じインタフェース(メソッド名)を呼び出しても、実際のオブジェクトの型によって異なる振る舞いをする仕組みです。例えばshape.draw()という呼び出しに対し、CircleはCircle用の描画を、SquareはSquare用の描画を実行します。呼び出し側は具体的な型を知らなくてよいため、拡張性と保守性が向上します。

なぜ ア は間違いか

データとメソッドを一つに包み込んで外部から隠す仕組みは「カプセル化(Encapsulation)」の説明です。ポリモーフィズムとは異なります。

なぜ イ は間違いか

既存クラスの属性・メソッドを引き継いで新クラスを定義する仕組みは「継承(Inheritance)」の説明です。

なぜ エ は間違いか

クラスからオブジェクトを生成するプロセスは「インスタンス化(Instantiation)」です。ポリモーフィズムとは別概念です。

出典: AI生成問題(学習用)