inherited est appelé sur "class Bar < Foo", donc à l'instanciation de la class (sic), avant qu'elle soit définie :
L=[]defare_you_taking_to_me?prefix,subclassknown=subclass.new.respond_to?(:bar_method)p"#{prefix} "+ifknown"Je connais TOUT"else"Je ne connais RIEN encore"end+" de #{subclass}"knownendclassFoodefself.inherited(subclass)are_you_taking_to_me?"DANS inherited",subclassputs()L<<subclass.newendendclassBar<Foodefinitializep"ok"enddefbar_methodp"bar method"endendare_you_taking_to_me?"APRÈS définition de Bar",Bar# => # DANS inherited Je ne connais RIEN encore de Bar## ok# APRÈS définition de Bar Je connais TOUT de Bar
# Oui, c'est normal ;-)
Posté par PhilIcare . En réponse au message inherited, méthode initialize non appelée. Évalué à 1.
inherited est appelé sur "class Bar < Foo", donc à l'instanciation de la class (sic), avant qu'elle soit définie :