ポリモーフィズム

polymorphism.png
di.png
Polymorphism
日本語では「多態性」「多相性」
ダイバーシティ(diversity=多様性)という言葉に似てますね。
よく、年齢、国籍、人種、性別で差別しないダイバーシティーな会社で~ーっす!
てかんじでね。

「類似したクラスに対するメッセージの送り方を共通にする仕組み」
「相手が具体的にどのクラスのインスタンスであるかを意識せずにメッセージを送れる仕組み」[2]
たとえば
相手が何を実装してるかは知らないけど、共通クラス「Animal」の派生クラスは泣けという関数を持っていることは知っている
メッセージ=泣け
犬ならワン
猫ならニャー
と返ってくる
ということ。
インタフェースと似てるな。
共通メインルーチンを作ること。
共通サブルーチンは、呼び出される側のロジックを一つにまとめるが、
ポリモーフィズムは反対に、呼び出す側のロジックを一本化する[2]

どんな時に便利?

  • 多岐に渡るelse if
  • 多岐にわたるswitch文
  • 複雑な入れ子になっているif文

そんなコードをスッキリさせることができる!

参考文献

サポートサイト Wikidot.com