ポリモーフィズム(多態性)
Polymorphism
ぽりもーふぃずむ
同じインタフェースやメソッド呼び出しに対して、オブジェクトの実際の型に応じて異なる振る舞いを実現する仕組み。オーバーライドやインタフェース実装により実現し、条件分岐の削減と拡張性の向上に貢献する。
アプリケーション設計 > オブジェクト指向設計
関連キーワードの用語
SAオブジェクト指向設計
データとそれに対する操作をオブジェクトとしてまとめ、オブジェクト間のメッセージパッシングによりシステムを構成する設計手法。カプセル化、継承、ポリモーフィズムを基本原理とし、再利用性と保守性の向上を目指す。
SAカプセル化
オブジェクト内部のデータ構造や実装の詳細を隠蔽し、外部からはインタフェース(公開メソッド)を通じてのみアクセスさせる仕組み。情報隠蔽により、内部実装の変更が外部に影響しない独立性を実現する。
SA継承
既存のクラス(スーパークラス)の属性やメソッドを引き継いで新しいクラス(サブクラス)を定義する仕組み。コードの再利用性を高め、is-a関係を表現する。多重継承を避け、インタフェースの継承を推奨する設計が一般的。
SASOLID原則
オブジェクト指向設計の5つの基本原則。単一責任の原則(S)、開放閉鎖の原則(O)、リスコフの置換原則(L)、インタフェース分離の原則(I)、依存性逆転の原則(D)。保守性・拡張性の高い設計を実現するための指針。
SA抽象クラス
直接インスタンス化できず、サブクラスで実装すべき抽象メソッドを定義するクラス。共通的な処理を定義しつつ、具体的な振る舞いをサブクラスに委ねる。インタフェースとの使い分けが設計のポイントとなる。
SAインタフェース(プログラミング)
クラスが実装すべきメソッドの仕様(シグネチャ)を定義した型。実装を持たず、複数のインタフェースを実装することで多重継承の問題を回避しつつ多態性を実現する。依存性逆転の原則の実現手段として重要。