无法从父类的#inherited方法(Ruby)访问子类中定义的方法

时间:2015-01-14 17:36:46

标签: ruby oop inheritance

我想做的事情:

class GrandFoo
    def self.inherited(subclass)
        puts subclass.new.respond_to? :bar  #false
    end
end

class Foo < GrandFoo
    def bar
        puts 'bar'
    end
end

# but
puts Foo.new.respond_to? :bar  #true

我无法找到有关此案例的信息,实际上我不知道应该寻找什么。 目标是&#34;要求&#34;在特定目录中找到的文件列表,每个文件包含一个具有相同&#39; bar&#39;的子类。方法

1 个答案:

答案 0 :(得分:1)

The documentation for Class#inherited说:

  

每当创建当前类的子类时,都会调用回调。

它表示已创建,而已创建。据推测,这意味着无法保证类是如何“完成”的,只有在创建的过程