Ruby:为每个子类执行代码

s12*_*ung 12 ruby inheritance metaprogramming subclass

给定父类有一种方法可以在加载时为每个子类插入代码吗?即.

鉴于:ParentClass,如何插入代码如下:

class ChildClass < ParentClass
   execute_function

   ...
end
Run Code Online (Sandbox Code Playgroud)

对于所有儿童班ParentClass

kri*_*lls 14

ParentClass覆盖继承的方法

class ParentClass
   def self.inherited(subclass)
      execute_function
      super
   end
   ...
end
Run Code Online (Sandbox Code Playgroud)

请参阅:http://ruby-doc.org/core-2.0/Class.html#method-i-inherited

  • 你可以,但不是必需的.没有参数的`super`将使用相同的参数调用父类中具有相同名称的方法. (2认同)