J'ai un peu de mal à comprendre quand "super" peut être appelé et quand ce n'est pas le cas. Dans l'exemple ci-dessous, la super méthode conduit à une erreur sans superclasse.Problème d'accès aux méthodes de superclasse dans les redéfinitions de méthode
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
mais cela fonctionne:
class Fixnum
def times
super # -> works
puts "done"
end
end
5.times { |i| puts i.to_s }
est de 5 pas seulement aussi une instance de Fixnum. Et je ne redéfinis pas une méthode existante comme dans l'exemple Bacterium ci-dessus?
Merci, très bien expliqué! Absolument clair maintenant. – Zardoz