Rubyとオブジェクト指向についてアウトプットしてみる【Mixin(extend)】
8.Mixin(extend)
module Hiden_of_Kuririn def kienzan print "気円斬!" end end class Kamesennin def kamehameha print "かめはめ波!" end end class Goku < Kamesennin def shunkanidou print "瞬間移動!" end def kamehameha print "界王拳4倍かめはめ波" end end goku1 = Goku.new goku1.extend Hiden_of_Kuririn goku1.kienzan #=> 気円斬!
今回の亀仙人(Kamesennin)は昔、クリリンの書(Hiden_of_Kuririn)を取得していませんでした。
しかし悟空(Goku)の分身は使わなければいけませんでした。
そこで、登場したのが extend です。
extend を利用して、悟空の分身(Gokuのインスタンス)は
クリリンの書(Hiden_of_Kuririn)を手に入れ、"気円斬!"を利用できるようになれるのです。
これが、Mixin(extend)です。
○Rubyとオブジェクト指向についてアウトプットしてみる○
1.メッセージ 〜オブジェクトは「問いかけたらきちんと返事をしてくれる」〜
2.継承とは
3.メソッドの実行
4.特異メソッド
5.特異クラス
6.オーバーライド
7.Mixin(include)
8.Mixin(extend)
9.委譲