ただいま、Rubyの試験にトライしようと、勉強しています。
http://www.school.ctc-g.co.jp/ruby/training_ruby_gold_41_50.html
CTC教育サービスさんの問題を解いていて、わからないので教えてください
問48.下記のコードの説明として正しいものを選択してください。
[コード]
class Foo
def initialize(obj)
obj.foo
end
def foo
puts "foofoofoo"
end
end
class Bar
def foo
puts "barbarbar"
end
end
Foo.new(Bar.new)
1. このコードを実行すると「foofoofoo」と出力される 2. このコードを実行すると「barbarbar」と出力される 3. このコードを実行するとシンタックスエラーになる 4. このコードを実行すると呼び出されるメソッドが存在しないためエラーになる
質問1.この考え方で合っていますでしょうか?
これは、(Bar.new)のオブジェクトが(obj)に代入される
代入された(obj) は obj.foo によって実行される
実行されたのは Barクラスのオブジェクトだから Barクラスのfoo メソッドが
呼ばれ "barbarbar" と表示される。
質問2.となると、Fooクラスの foo メソッドを呼び出して、
"foofoofoo" と表示させたい時はどうすればいいですか?
変な質問ですみません。よろしくお願い致します。
ソースコードはコードブロックを使って書いて下さい。今からでも修正可能です。
回答1件
あなたの回答
tips
プレビュー