Рубиновое наследование - PullRequest
2 голосов
/ 10 марта 2011

В справочнике по API ядра Ruby 1.9.2 говорится, что родительским объектом Object является BasicObject. Но тогда он говорит, что родителем BasicObject является Object. Как это работает? Что здесь происходит?

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Это должно быть ошибкой в ​​документации.Концептуально, у BasicObject нет родителя, практически, это представлено его родителем, являющимся nil.(Примечание: nil, объект , а не NilClass.)

Обратите внимание, что на RubyDoc.Info он корректно отображается как не имеющий родителя.

2 голосов
/ 10 марта 2011

Вы правы, что родительский объект Object является BasicObject, но родительским объектом BasicObject не является Object.

Object.ancestors # => [Object, Kernel, BasicObject]
BasicObject.ancestors # => [BasicObject]
...