4.3.4.1. 継承の例
defclass C1 ()
(5.4 :type number)
((S1 :initform
(S2 :allocation :class)))
defclass C2 (C1)
(5 :type integer)
((S1 :initform
(S2 :allocation :instance) (S3 :accessor C2-S3)))
クラスC1
のインスタンスは、S1
という名前のローカルスロットを持っており、 それはデフォルトの初期値が5.4
であり、 その値は常に数値でなければなりません。 クラスC1
もまたS2
という名前の共有スロットを持っています。
C2
のインスタンスには、S1
というローカルスロットがあります。 そのS1
のデフォルトの初期値は5
でせう。 S1
の値は常に(and integer number)
という型でなければなりません。 C2
のインスタンスには、S2
とS3
というローカルのスロットもあります。 クラスC2
はC2-S3
というメソッドを持っており、 それはスロットS3
の値を読み込みます。 また(setf C2-S3)
というメソッドも存在し、 それはスロットS3
の値を書き込みます。