class Class
Parent: Module
Version: 1.6


inherited new new superclass

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 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 ",, "\n"

 class Name

 n =


Creating a new Name

class methods
inherited aClass.inherited( aSubClass )
This is a singleton method (per class) invoked by Ruby when a subclass of aClass is created. The new subclass is passed as a parameter.

class Top
  def Top.inherited(sub)
    print "New subclass: ", sub, "\n"

class Middle < Top

class Bottom < Middle


New subclass: Middle
New subclass: Bottom

new aSuperClass=Object ) -> aClass
Creates a new anonymous (unnamed) class with the given superclass (or Object if no parameter is given).

instance methods
new [args]* ) -> anObject
Creates a new object of aClass's class, then invokes that object's initialize method, passing it args.
superclass aClass.superclass -> aSuperClass or nil
Returns the superclass of aClass, or nil.

Class.superclass -> Module
Object.superclass -> nil

Extracted from the book "Programming Ruby - The Pragmatic Programmer's Guide"
Copyright © 2000 Addison Wesley Longman, Inc. Released under the terms of the Open Publication License V1.0.
This reference is available for download.