原です。 > 前田です。 > Smalltalkを実際に使ったことがないのではずしてるかもしれませんが... > 以前「サクサクSmalltalk」という本がいいよと教えられて読んでみたので > すが、こんなことが書かれていました。 > > (要約) (略) > は楕円のサブタイプである。しかしSmalltalkでそれを実装する場合、単一 > の直径変数を持つスーパークラスとしてCircleを定義し、さらに変数を付け > 加えたサブクラスとしてEllipseを作成するだろう。 ええっ、それは気持ち悪いぞっ!と最初思ったけど、単純なものか ら複雑なものへ作っていくという考えからは自然かも知れないです ね。 考えてみれば n+1 次元の空間の特別な場合として n 次元の空間を 定義する人はいなわけで、小さい方から順々に作るのは数学も同じ かな。 でも、最初から Ellipse を作ることが分かっているなら、そっち をスーパークラスにした方が絶対有利ですよね。Circle の方はほ とんどコードを書く必要がない。逆だったら、Circle の多くのメ ソッド を Ellipse で再定義することになるだろうから。