继承的钩子什么时候开火?
我问,因为在触发继承类中的任何代码之前我需要一种方法来启动它。
同时我不希望这段代码在父类中运行(这就是为什么我不能将代码转储到父类中)。
答案 0 :(得分:1)
在评估子类的主体之前,调用基类的self.inherited
方法(如果已定义)。
这很容易向自己证明:
class Base
def self.inherited(what)
puts "base"
end
end
class Child < Base
puts "child"
end
输出
基
子
但是,我无法保证这种情况。在你这样做之前,我不一定会认为对于所有当前的Ruby实现都是如此。