(defclass _fgf (is-a USER));отец отца
(defclass _fgm (is-a USER));мать отца
(defclass _father (is-a _fgm _fgf))
(defclass _mgm (is-a USER));мать матери
(defclass _mgf (is-a USER));отец матери
(defclass _mother (is-a _mgm _mgf))
(defclass _child (is-a _mother _father))
Выполните команду (describe-class _child). Полученный результат должен соответствовать рис. 11.2.
Рис. 11.2. Списков предшествования классов для класса _child
Команда describe-class выводит на экран довольно много информации о заданном классе. Значение этой информации станет более понятно по мере изучения различных свойств конструктора defclass и обработчиков сообщений. Сейчас обратите внимание только на список непосредственных суперклассов (Direct Superclasses) и на список предшествования классов (Inheritance Precedence) для _child.
Абстрактные и конкретные классы
С помощью спецификатора роли класса можно задать роль для класса, создаваемого конструктором defclass. Класс может быть либо абстрактным, либо конкретным.