「スーパー」を呼び出すことができない場合とそうでない場合を理解するのが少し面倒です。以下の例では、スーパーメソッドはスーパークラスエラーを発生しません。メソッドの再定義でスーパークラスメソッドにアクセスする際の問題
class Bacterium
def eats
puts "Nam"
end
end
class Bacterium
def eats
super # -> no superclass error
puts "Yam"
end
end
b = Bacterium.new
b.eats
しかし、これは動作します:
class Fixnum
def times
super # -> works
puts "done"
end
end
5.times { |i| puts i.to_s }
はFixnumかの5だけではなく、インスタンスです。私は上記のBacteriumの例のような既存のメソッドを再定義していませんか?
ありがとう、非常によく説明されています!今は絶対にクリアしてください。 – Zardoz