Common Lisp the Language, 2nd Edition

next up previous contents index
Next: Integrating Types and Up: Inheritance Previous: Inheritance of Class Examples


(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 will 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.