演習課題「メソッドをオーバーライドしよう」
右のコードには、Greetingクラスに、say_helloメソッドが定義されており、
Greetingクラスを継承したHelloクラスが定義されています。
このHelloクラスで、say_helloメソッドをオーバーライドして、メソッド呼び出しの引数をターゲットとして表示してください。たとえば、引数に「ruby」を渡した場合、「hello ruby」と表示します。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello ruby
演習課題「メソッドをオーバーライドしよう2」
右のコードには、Greetingクラスを継承したHelloクラスが定義されています。
そして、Greetingクラスをオブジェクトにして、player変数に割り当てています。
このplayer変数にHelloクラスのオブジェクトを割り当てください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello paiza
YEAH YEAH YEAH!
演習課題「間違い探し」
右のコードでは、say_helloメソッドを呼び出していますが、エラーになってしまいます。
間違いを修正して、「hello ruby」と表示されるようにしてください。
プログラムを実行して、正しく出力されれば演習課題クリアです!
期待する出力値
hello ruby
#03:メソッドのオーバーライド
ここでは、クラスを継承したときに利用できるメソッドのオーバーライドについて学習します。
オーバーライドを利用すると、親クラスが持つメソッドを子クラスで再定義して上書きすることができます。# openメソッドのオーバーライド
class Box
def initialize(item)
@item = item
end
def open()
puts "宝箱を開いた。#{@item}を手にいれた。"
end
end
class MagicBox < Box
def open()
puts "宝箱を開いた。#{@item}が襲いかかってきた!"
end
end
- 【Ruby】メソッドの基本について - TASK NOTES
http://www.task-notes.com/entry/20141126/1416988996
- Ruby: クラスのメソッドをオーバーライドするには? - Build Insider
http://www.buildinsider.net/language/rubytips/0014