Пример 11.20. Создание экземпляра класса А и работа со слотами

(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 приводит к тому, что слот, обладающий такой гранью, не распространяется по наследованию и содержится только в классе, где он был определен.

Создадим два простых класса.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: