私はそれがおそらくロングショットであることを知っていますが、私は尋ねたいと思いました:
Ruby は、継承するクラスのメソッドinitialize
を明示的に呼び出さない限り (または継承するクラスでオーバーロードしない限り)、親クラスのメソッドを実行しないため、コードをクラスの一部として実行する別の方法があるかどうか疑問に思っていました。継承クラスの新しいインスタンスをインスタンス化するときの親コンテキスト(おそらくフック)...super
initialize
の初期化メソッドを実装する場合B
、現在の動作は次のとおりです。
class A
def initialize
puts "Inside A's constructor"
end
end
class B < A
def initialize
puts "Inside B's constructor"
end
end
A.new
B.new
# Output
# => Inside A's constructor
# => Inside B's constructor
出力がどういうわけか次のようになるのではないかと思っていました:
A.new
# => Inside A's constructor
B.new
# => Inside A's constructor
# => Inside B's constructor