I am a beginner at Ruby who is trying to understand its Object Model.
In IRB. I created a class called MyClass
and started to check the Object Model like so:
2.1.0p0 :013 > MyClass.class
=> Class
2.1.0p0 :014 > MyClass.superclass
=> Object
2.1.0p0 :015 > Class.class
=> Class
2.1.0p0 :016 > Class.superclass
=> Module
2.1.0p0 :017 > Object.class
=> Class
2.1.0p0 :018 > Object.superclass
=> BasicObject
2.1.0p0 :019 > BasicObject.class
=> Class
2.1.0p0 :020 > BasicObject.superclass
=> nil
Question 1
Why do Myclass.superclass
and Class.superclass
are different when MyClass.class == Class.class
returns true
?
2.1.0p0 :021 > Class.class == MyClass.class
=> true
In other words: Why are their superclasses different?
Question 2
Is this diagram accurate? Diagram's Link
Thank you in advance.