継承クラスとスーパークラスの関係をOOP初心者(数学が得意な人)に説明することになったのですが、思わぬ突込みがはいり、自分がウロタエてしまいました。
「人に説明できて始めて理解できた事になる」とよく言われます。...自分は理解してなかった???
--説明---始
オブジェクトは実業務を抽象かするものです。
複数のクラスを眺めて,因数分解するように,最小公約数を見つけていけば,基本クラスの抽出ができます。
不足分を各クラスの独自メンバーにします。
犬,猫,サルの共通動作として,寝る,食べる,鳴く がありますね.動物クラスにします。云々.....
動物クラスを継承して犬クラスを作り、犬独自のメンバーとして"人に懐く","芸をする" を追加します
結果として,動物クラスは3つのメンバーしかないけれど,犬クラスは5つのメンバーを持つことが可能になります...
.......
--説明---終
順調だと思っていたら,
--質問---始
オブジェクトは実社会を反映するものですね。
動物クラスは,動物を意味しますね。
犬クラスは、犬を意味しますね。
犬は動物界のイヌ科であるから、動物の集合体の中にイヌの集合体がある。
ところが、継承の説明では、動物界をスーパークラスとして、それを包含するイヌ界があることになる。全然、実社会を反映していない。
--質問---終
種の数で弁図を書くとそうなるが、振る舞い動作という切り口で数えて欲しい...言い訳的な解答。
半分も説明し切れませんでした。
動物で説明するのは無理があるなぁ。