如何在加载子类时运行父体?

时间:2015-08-18 12:03:51

标签: ruby

假设我有这些方法,在加载类T时调用methodA,但我想改变这种行为,我希望在子类T时调用它(例如T2)被调用而没有触及子类。

def methodA
   puts "method has been called"
end
Class T
   method A
   def methodB
   end
end

Class T2 < T
end

我尝试过使用此代码:

class T
   if self.superclass ==T
      methodA
   end
end

但它不会解决我的问题,因为它在加载子时不会运行此主体。

我有什么方法可以做到吗?如果是,那么请让我知道如何!

1 个答案:

答案 0 :(得分:0)

尝试inherited回调,它将在加载子类时执行,并在加载子类T2后立即执行。示例代码如下 -

def methodA
  puts "method has been called"
end


class T
   def self.inherited(subclass)
     methodA   
   end
end