On Aug 29, 11:25 ¨Âí¬ ¢Ôèïíᮼôðò®®®Àçíáéì®ãïí¾ ÷òïôåº > Jim Xu wrote: > > irb(main):171:0> class B < C > > irb(main):172:1> include A > > irb(main):173:1> end > > TypeError: superclass mismatch for class B > > from (irb):171 > > from :0 > > Of course you cannot do it, because a moment ago you declared the method > B as an immediate descendant of Object, and now you want it to be the > descendant of C. The error has nothing to do with mixins. > > irb(main):046:0> class A;end > => nil > irb(main):047:0> class B;end > => nil > irb(main):048:0> class B<A;end > TypeError: superclass mismatch for class B > from (irb):48 > -- > Posted viahttp://www.ruby-forum.com/. Yes, my mistake. I am still trying to get comfortable that Ruby allows extending existing classes in runtime... I always thought that when defining a new class, it points the symbol to a new object instead of opening up the existing object... (under the same scope of course)