[Newbies] Changing superclass doesn't "work automatically"
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