妖精「かわいくなーれ!」
冗談はさておき…
今日授業で気になった単語にメモ書き
ポリモーフィズムとは?
プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。ポリモルフィズム、多態性、多相性、多様性とも呼ばれる。
対義語も存在するみたいで、モノモーフィズム、単態性、単相性で、プログラミング言語の各要素が唯一つの型に属するという性質を指す。
今回はポリモーフィズムについて話します。
ポリモーフィズムを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」ですがブログを読む感じ生物学のポリモーフィズムになるのかなと思います。