ポリモーフィック関連付け
ポリモーフィック関連付け
ダックタイピングの一種。
インスタンスにも親クラスと同じメソッドを持たせておくことで、親クラスを呼び出した時の出力を定義すること。
このように、「違うものがある決まった振る舞い/入出力を持つことで、同じように扱えるようにすること」をダックタイピングと呼びます。そして、その「ある決まった振る舞い」「入出力の定義」のことをインターフェースと呼びます。
コード例に沿って表現すると、
Duck
とCat
は違うクラスですが両方とも#sound
というメソッド(インターフェース)を持つので、Animal
の中ではどちらのオブジェクトであるかを意識せず#sound
を呼ぶことができる、というのがダックタイピングです。
呼び出すのは親クラス。下記が今回のインターフェイスということになる。
「Animal.new(インスタンス名).sound
を実行したときに、鳴き声が返ってくる」
入力: Animal.new(インスタンス名).sound
を実行
出力: 鳴き声が返ってくる
この定義を守ることで、どんな動物のインスタンスを入れたとしてもその動物の鳴き声が出力されることが担保される。
これを実現してくれるのがポリモーフィック関連付けという。