From: GOTO Kentaro Date: 2002-05-17T07:08:41+09:00 Subject: Re: Metaclasses... At Fri, 17 May 2002 05:46:22 +0900, Hal E. Fulton wrote: > 1. Why does MyClass.class return Class, if the > class of MyClass is really MyClass's metaclass? MyClass.class never be MyClass. Every class is instance of Class or its subclass. class Object def virtualclass # This method *creates* virtual class if that does NOT exists yet. class << self self end end end class Class alias metaclass virtualclass end class MyClass end c, d = MyClass.class, MyClass.virtualclass p [c, d, c == d] generates [Class, #, false] with ruby17. > 2. Why do we create a metaclass if all classes are > instances of Class? Couldn't Class have been used > as a generic metaclass? To inherit class methods, perhaps. class A def A.m self end end class B