This loads the package.
By default,
$DefaultClass is set to
Object, the very top of all class hierarchies.
Here, we define a class that will be used as default.
Now, we set the new default.
Without a superclass specification, this default is taken as parent. This is the case for the next class.
An object created from base will evaluate the print statement of the new default class.
We restore the default value.
The class definition now use
Object as default and object generation is no longer reported.
A stack is grown every time $DefaultClass gets a new value. We can restore the previous value by means of
Unset,
Clear,
ClearAll or
Remove. The very first stack element is never removed, but returned.