Racket クラスと継承

参照URL http://goo.gl/VQKzum

クラスの作成は基本的にこんな感じ


(define クラス名
(class 親クラス名(ない場合は%objectを使用)
(super-new)
(init 初期値)

   (define/public (メソッド名 引数))
))

メソッドの呼び出し
(send クラス名 (new メソッド名 (引数名 値)))


親クラス名のところに親クラスを書くことによって簡単に継承が行える。
ただ親クラスをオーバーライドするにはinheritを使う必要がある


(define child-fish%
(class fish%
(inherit オーバーライドするメソッド名)
))

とまあこんな感じ、、



クラスの外から使いたいメソッドを使う場合にはgenericを使う
e.g
定義
(define get-fish-size (generic fish% get-size))

呼び出し
(send-generic goldFish get-fish-size)