next up previous
Next: 12.5 多重継承 Up: 12 オブジェクト指向プログラミング Previous: 12.3 スロットの属性設定

12.4 スーパクラス

クラスを定義する場合に,スーパクラス(親クラス)を 指定することができます.

> (defclass bar (foo)
    ((d :accessor foo-d :initarg :d :initform 4)))

#<STANDARD-CLASS BAR>

> (setq bar1 (make-instance 'bar :a 1 :b 2))
#<BAR @ #x203c6b12>
> (foo-a bar1)
1
> (foo-b bar1)
2
> (foo-c bar1)
3
> (foo-d bar1)
4
> (defmethod foo-method ((x foo))
     (slot-value x 'a))
 #<STANDARD-METHOD FOO-METHOD (FOO) 42720573>

> (foo-method foo1)
UNO
> (foo-method bar1)
1
> (defmethod foo-method ((x bar))
     (slot-value x 'd))
#<STANDARD-METHOD FOO-METHOD (BAR)>
> (foo-method bar1)
4
barクラスはfooクラスを親として,そのクラスの性質 を継承します.

generated through LaTeX2HTML. M.Inaba 平成18年5月6日