gpt4 book ai didi

ruby - 类的父类(super class)和字符串的父类(super class)

转载 作者:太空宇宙 更新时间:2023-11-03 16:50:38 24 4
gpt4 key购买 nike

Class 有其父类(super class) Module,但任何类,如 String,都有父类(super class) Object。这是为什么?

最佳答案

要弄清楚,您需要查看 Object model ruby :

模块对象是相互关联的。在下图中,垂直箭头代表继承,括号代表元类。所有元类都是 Class 类的实例。

                         +---------+             +-...
| | |
BasicObject-----|-->(BasicObject)-------|-...
^ | ^ |
| | | |
Object---------|----->(Object)---------|-...
^ | ^ |
| | | |
+-------+ | +--------+ |
| | | | | |
| Module-|---------|--->(Module)-|-...
| ^ | | ^ |
| | | | | |
| Class-|---------|---->(Class)-|-...
| ^ | | ^ |
| +---+ | +----+
| |
obj--->OtherClass---------->(OtherClass)-----------...

所有的问题都可以通过查看上图来回答。

but any class, like "String", you get the superclass "Object". Why is it?

查看图中的OtherClassHashStringArray等都是OtherClass

in Ruby, the "Class" itself has the superclass "Module"

就是这样设计的,再从图中可以回答。

关于ruby - 类的父类(super class)和字符串的父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com