IT資格用語解説基本情報技術者試験・ソフトウェア設計手法
多相性
更新日:
用語解説
多相性(ポリモーフィズム)は、共通の型・インタフェースに対する同じ操作呼出しが、実際の対象型に応じた異なる実装として振る舞う性質です。
■ 試験で押さえるポイント
サブタイプ多相では、基底型の参照に各サブクラスのインスタンスを代入し、オーバーライドされたメソッドを動的結合で選びます。
同じメソッド名を異なる引数で定義するオーバーロードはアドホック多相、型パラメータを使うジェネリクスはパラメトリック多相です。
呼出側が型ごとのif・switchを持たず共通契約へ依存でき、新しい型の追加時に既存コードの変更を減らします。
各実装は共通契約の事前条件を強めず事後条件を弱めない等、リスコフの置換原則を満たす必要があります。
■ 選択肢での判断ポイント
同じインタフェース呼出しが実型ごとに異なる実装へ結び付く性質です。オーバーロードとオーバーライドを区別します。
例: List<Shape>の各要素へdrawを呼ぶと、Circleは円、Rectangleは長方形を描き、呼出側は具体型を判定しません。