1
私はクラスのためにRubyを学び、サンプルゲームを書いています。私はその後、別のクラスを持っているRubyでインスタンスメソッドを正しくオーバーライドするにはどうすればよいですか?
class Player
def askIfTake
puts("Would you like to take a card? > ")
input = gets.chomp
input.downcase!
if input == "y" or input == "yes"
return 1
elsif input == "n" or input == "no"
return 0
else
puts("Invalid input. Please type y or n.")
return askIfTake
end
end
end
:ここでは私のクラスのいずれかのビットがある、私はPlayerAIのインスタンスを作成し、そのインスタンスからaskIfTakeを呼び出そうとするとき
class PlayerAI < Player
def initialize
super
end
def askIfTake
puts("this is an AI")
return rand(2)
end
end
問題は、ありますPlayerクラスで宣言されたメソッドを呼び出します。なぜこうなった?
ありがとうございました。私は単純なものを見落としていました。私がクラスを宣言したとき、私は実際にプレーヤークラスを宣言していました。問題のために1時間ほど探していましたが、その単純なタイプミスは見られませんでした。 –
@AohmZ:時間の経過とともにタイプミスが早くなります。最終的には、「第六のプログラミング感覚」があり、それらが発生する前にバグを見つけることができます:) – Peter
私はしばらくプログラミングしてきました。私はあなたが新しい言語に巻き込まれたときにあなたがものを見落とすと思います:) –