我有點麻煩了解什麼時候可以調用「超級」,什麼時候不可以。在下面的例子中,super方法導致沒有超類錯誤。在重新定義方法中訪問超類方法的問題
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 }
是5不僅僅是也Fixnum對象的實例。我是不是像上面的細菌例子那樣重新定義現有的方法?
謝謝,很好的解釋!現在絕對清楚。 – Zardoz 2010-12-13 10:29:03