inheritednewnewsuperclass
Classes in Ruby are first-class objects---each is an instance of
class Class.
When a new class is created (typically using
class Name ... end), an object of type Class is created
and assigned to a global constant (Name in this case). When
Name.new is called to create a new object, the new
method in Class is run by default. This can be demonstrated by
overriding new in Class:
class Class
alias oldNew new
def new(*args)
print "Creating a new ", self.name, "\n"
oldNew(*args)
end
end
class Name
end
n = Name.new