Common Lisp the Language, 2nd Edition
Methods for update-instance-for-different-class may be defined to specify actions to be taken when an instance is updated. If only :after methods for update-instance-for-different-class are defined, they will be run after the system-supplied primary method for initialization and will not interfere with the default behavior of update-instance-for-different-class. Because no initialization arguments are passed to update-instance-for-different-class when it is called by change-class, the :initform forms for slots that are filled by :before methods for update-instance-for-different-class will not be evaluated by shared-initialize.
Methods for shared-initialize may be defined to customize class
redefinition (see section 220.127.116.11).