Class, Object, Module и все другие классы являются экземплярами класса Class:)
Class.class == Module.class == Object.class == Hash.class == Класс
Класс также является объектом (как и любой другой объект в системе), но это не прямой экземпляр объекта, это экземпляр производного класса (класс в это дело)
Class.superclass.superclass == Объект (с модулем в середине)
Сам объект также является классом. так Object.class == Класс
Класс, Модуль и Объект имеют круговую зависимость, поскольку находятся в ядре модели ОО.
Object.class.superclass.superclass == Объект
=> parent (.superclass)
-> instance-of (.class)
альтернативный текст http://www.grabup.com/uploads/b10b2ffa9976953e3d6f88e6fcbf6f28.png?direct