メモ
ポリモーフィズム

ちょっと気になった『ポリモーフィズム』

妖精「かわいくなーれ!」

65ef1069-s.png

冗談はさておき…
今日授業で気になった単語にメモ書き

ポリモーフィズムとは?

プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。ポリモルフィズム、多態性、多相性、多様性とも呼ばれる。

対義語も存在するみたいで、モノモーフィズム、単態性、単相性で、プログラミング言語の各要素が唯一つの型に属するという性質を指す。

今回はポリモーフィズムについて話します。

ポリモーフィズムをRubyで考える

同じメソッドを実行してもオブジェクトの種類によって, 振る舞いが異なる(違うメソッドが実行されている)。

引数として動作しているは代入されたオブジェクト(のクラス)によっていろいろな振る舞いをする。

そのメソッドが呼びだされたときにどう振舞えばいいかをオブジェクトが知っていると言える

qiita.rb
#屈強な戦士
class Garen
    def shout
       puts "デマーシアー!"
    end
 end

 #形や構造などが可愛い獣な戦士
 class GarenWhimsy < Garen
    def shout
       puts "キューン、キューン"
    end
 end

 #叫ぶ!
 def exclaim(who)
    who.shout
 end

 garen = Garen.new
 garenWhismy = GarenWhimsy.new

 exclaim garen #デマーシアー!
 exclaim garenWhismy #キューン、キューン

これがやりたかった…
ネタが趣味によってしまっているので、汎用的な例は参考文献でご確認ください!

思った事

今回題材にした妖精のさんスキル「Whimsy」ですがブログを読む感じ生物学のポリモーフィズムになるのかなと思います。

参考文献

Wikipedia
Ruby入門 オブジェクト指向
騒音のない世界 BLOG