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.委譲