ポリモーフィズムについて
ざっくり言うと、呼び出す側のオブジェクトによって実行される同名メソッドの振る舞いが変わること。 文字だけでは理解が困難だと思うので、例をあげます。
class Human attr_reader :language def initialize(language) @language = language end def language_name puts "My language is #{@language}" end end # Humanを継承したクラス class Japanese < Human def language_name puts "私の話す言語は #{@language} です。" end end human = Human.new('English') japanese = Japanese.new('日本語') human.language_name japanese.language_name
実行結果は
My language is English 私の話す言語は 日本語 です。
同じメソッドを呼び出しているけれども、レシーバーによって実行結果が異なることを確認できました!
参考