What I know singleton methods can be called by the objects, on which it is defined. Now in the below example C
is also an object of Class
and singleton method a_class_method
defined on the Class
object C
. So how does another Class
object D
able
to call a_class_method
?
How does object
individuation
principle holds in this example?
class C
end
#=> nil
def C.a_class_method
puts "Singleton method defined on #{self}"
end
#=> nil
C.a_class_method
#Singleton method defined on C
#=> nil
class D < C
end
#=> nil
D.a_class_method
#Singleton method defined on D
#=> nil
The reason that
a_class_method
is available is that:well when you did the < you made class D inherit from Class C so D will get anything from class C. If you want to know what all D's parents are you can do
which will give you
So even though D would be an individual class it is a sub class of C which is what lets it use a method defined for C