(make-instance a of A (bar 34))
(make-instance a of A (foo 34) (woz 65))
(send [a] put-bar 1)
(send [a] put-woz 1)
(send [a] print)
Вы должны получить результат, приведенный на рис. 11.6.
Внимание!
Несмотря на то, что у нас получилось переопределить значение слота woz при создании объекта с помощью make-instance, изменить его с помощью стандартного сообщения put нельзя.
Рис. 11.6. Создание экземпляра класса А и работа со слотами
Грань распространения при наследовании
COOL позволяет регулировать процесс наследования слотов с помощью грани propagation. Она может принимать два значения: inherit и no-inherit. Значение inherit позволяет всем классам-наследникам получать и использовать данный слот. Это значение по умолчанию принимается для всех слотов. Значение no-inherit приводит к тому, что слот, обладающий такой гранью, не распространяется по наследованию и содержится только в классе, где он был определен.
Создадим два простых класса.