The ':new' message selector exhibits two different behaviors. When you are creating an instance of a class you only need the ':new' message [consisting of the message selector and any data]. When you are creating a new class with ':new', you need to specify instance variables and optionally the class variables and superclass.
(setq new-class (send class :new '(state))) ; create NEW-CLASS with STATE (setq new-obj (send new-class :new)) ; create NEW-OBJ of NEW-CLASS (send new-obj :show) ; shows the object (setq sub-class (send class :new '(sub-state) ; create SUB-CLASS of NEW-CLASS '() new-class)) (send sub-class :show) ; show the SUB-CLASS
See the
:new
message selector in the