[Newbies] Changing superclass doesn't "work automatically"

Bert Freudenberg bert at freudenbergs.de
Thu Jul 3 10:44:14 UTC 2008


Am 03.07.2008 um 05:27 schrieb Randal L. Schwartz:

>>>>>> "Marcin" == Marcin Tustin <mm3 at zepler.net> writes:
>
> Marcin> I recently came across a piece of behaviour which is (sort of)
> Marcin> understandable, but I wonder if it is how it is supposed to  
> happen or
> Marcin> not. I was running through the potsdam seaside tutorial, and  
> I change
> Marcin> the superclass of one of the objects from Object to  
> WAComponent, and
> Marcin> accepted the change. All the browser tools treated the class  
> as if its
> Marcin> protocol included the messages of WAComponent, but running  
> code that
> Marcin> sent WAComponent messages signaled MessageNotUnderstood.
>
> Are you sure you weren't dealing with a previous instance of your  
> old class?
> I think this kind of a change forks the class def so that new  
> instances have
> the new superclass, but old instances still have the old class and old
> superclass (anObsoleteYourClassnameHere).
>
> I could be wrong, but tI think that's how it works.


Smalltalk does not work that way. If the class format changed, all  
existing instance are bulk-migrated to the new class (by creating new  
instances and doing a forward-become on all of them).

- Bert -




More information about the Beginners mailing list