(defclass A (is-a USER)
(role concrete)
(slot foo (default A)))
(defclass В (is-a A)
(slot foo))
(defclass С (is-a A))
(slot foo (source composite)))
Создайте экземпляры объектов всех трех классов и просмотрите содержащиеся в них слоты и их значения с помощью стандартного сообщения print. Вы должны получить результат, идентичный приведенному на рис. 11.8.
Рис. 11.8. Просмотр слотов классов А, В и С
В данном примере класс а определяет слот foo со значением по умолчанию для слота foo, равным а. Классы BиC являются наследниками класса а, и оба переопределяют слот foo. Однако, в отличие от класса B, класс С определяет для слота foo грань source со значением composite. Таким образом, слот foo класса С получает значение по умолчанию, определенное в классе-предке А.