我有点麻烦了解什么时候可以调用“超级”,什么时候不可以。在下面的例子中,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