ANSI Common Lisp 4 Types and Classes 4.3 Classes 4.3.4 Inheritance
4.3.4.1 Examples of Inheritance
(defclass C1 ()
((S1 :initform 5.4 :type number)
(S2 :allocation :class)))
(defclass C2 (C1)
((S1 :initform 5 :type integer)
(S2 :allocation :instance)
(S3 :accessor C2-S3)))
Instances of the class C1 have a local slot named S1,
whose default initial value is 5.4 and
whose value should always be a number.
The class C1 also has a shared slot named S2.
There is a local slot named S1 in instances of C2.
The default initial value of S1 is 5.
The value of S1 should always be of type (and integer number).
There are also local slots named S2 and S3 in instances of C2.
The class C2 has a method for C2-S3 for reading the value of slot S3;
there is also a method for (setf C2-S3) that writes the value of S3.
|