【发布时间】:2017-10-19 17:27:47
【问题描述】:
根据 Ruby 方法查找法则,每当我们在对象上调用任何方法时,ruby 都会使用公式 object.class.ancestors 找到该方法。如果这是真的,那么我应该无法使用Child 类常量作为Child.parent 访问父类中定义的父方法,因为Child 类的祖先是[Class, Module, Object, Kernel, BasicObject]。但我可以访问它。谁能告诉我为什么会这样?
class Parent
def self.parent
puts "i am parent"
end
end
class Child < Parent
end
Child.parent # i am parent
我的 jruby 版本是 jruby 1.7.16 (1.9.3p392) 2014-09-25 575b395 on Java HotSpot(TM) 64-Bit Server VM 1.8.0_20-b26 +jit [Windows 8.1-amd64]
【问题讨论】:
-
您正在使用 jruby 的 old 版本...我不熟悉这个旧版本的怪癖。以下答案适用于任何现代 ruby 版本,包括现代 jruby。
标签: ruby inheritance jruby