演習課題「クラスの中のメソッドを呼び出す」
右のコードでは、Greetingクラスの中に、say_helloメソッドとsay_yeahメソッドを定義しています。
say_helloメソッドを呼び出すと「hello paiza」と表示されて、say_yeahメソッドを呼び出すと「YEAH YEAH YEAH!」と表示されます。
「hello paiza」に続けて、「YEAH YEAH YEAH!」と表示されるようコードを書き換えてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello paiza
YEAH YEAH YEAH!
演習課題「親クラスのメソッドを呼び出す」
右のコードでは、Greetingクラスでsay_helloメソッドを定義して、Helloクラスでsay_helloメソッドをオーバーライドしています。
Helloクラスでsay_helloメソッドを書き換えて、「hello paiza」に続けて、「YEAH YEAH YEAH!」と表示されるようにください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello paiza
YEAH YEAH YEAH!
#06:クラスからメソッドを呼び出してみよう
ここでは、Rubyのクラスで、いろいろなメソッド呼び出しについて学習します。
class Wizard < Player
def attack(enemy)
spell()
puts "#{@name}は、#{enemy}に炎を放った!"
end
def spell()
puts "シャラララーン"
end
end
privateメソッド以降に記述する。class Wizard < Player
def attack(enemy)
spell()
puts "#{@name}は、#{enemy}に炎を放った!"
end
private
def spell()
puts "シャラララーン"
end
end
superメソッドを呼び出す。
スーパークラスの中で、その呼び出されたメソッドと同じメソッド名を持つメソッドを探して実行します。
参考サイト「スーパークラスのメソッドを呼び出す」
http://www.rubylife.jp/ini/inherit/index3.htmlclass Wizard < Player
def initialize()
super("魔法使い")
end
def attack(enemy)
spell()
puts "#{@name}は、#{enemy}に炎を放った!"
end
private
def spell()
puts "シャラララーン"
end
end
【Ruby】メソッドの基本について - TASK NOTES
http://www.task-notes.com/entry/20141126/1416988996
Ruby の private と protected 。歴史と使い分け - Qiita
http://qiita.com/tbpgr/items/6f1c0c7b77218f74c63e
Ruby: クラスのメソッドをオーバーライドするには? - Build Insider
http://www.buildinsider.net/language/rubytips/0014