【发布时间】:2020-02-12 20:57:47
【问题描述】:
2.3.3 :001 > Object.class #=> Class
2.3.3 :002 > Class.ancestors #=> [Class, Module, Object, Kernel, BasicObject]
我无法理解这个概念。
我想象的如下所示
class Object < Class
...
end
class Class < Module
...
end
class Module < Object
...
end
这可能看起来很愚蠢,我错过了什么吗?我似乎找不到任何相关的答案。
【问题讨论】:
-
"这可能看起来很愚蠢,我是不是遗漏了什么?" – 你错过了你错了。
Object不是Class的子类。 -
@JörgWMittag 是的,我知道,我试图通过想象那个愚蠢的场景来理解我读到的 here 的内容
-
那篇文章毫无意义。这与声称“
'Hello'是String的实例。String是Object的子类。因此,'Hello'是Object的子类”完全相同。在这种情况下,更明显这是错误的,因为'Hello'甚至不是一个类根本,因此不可能是一个“子类”东西。Object的情况完全相同,只是Object也恰好是一个类,如果您不注意当前是在谈论Object作为对象还是 @ 987654337@ 作为一个班级。
标签: ruby oop inheritance hierarchy class-hierarchy