假设我有这些方法,在加载类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
但它不会解决我的问题,因为它在加载子时不会运行此主体。
我有什么方法可以做到吗?如果是,那么请让我知道如何!
答案 0 :(得分:0)
尝试inherited
回调,它将在加载子类时执行,并在加载子类T2
后立即执行。示例代码如下 -
def methodA
puts "method has been called"
end
class T
def self.inherited(subclass)
methodA
end
end