Javaでよくある例について

Javaの入門で、よく犬とか哺乳類とかを例にしている。これが嫌いだ。
哺乳類というabustructクラスがあって、それをextendsした犬クラスがあって、そのinstanceとしてポチがいます、とか。
犬クラスの子クラスには、プードルと柴犬がいて、どちらも吠えます。なので犬クラスには吠えるというメソッドがあります。ということは、吠えるというメソッドは犬というスーパークラスで定義します。そしてプードルや柴犬で吠える声が違う場合はポリモーフィズムで、同じ吠えるメソッドで鳴き声をかえることができます。


わけがわからん。こういう例のせいで、僕はかなりわけがわからなかった。
僕以外の人に、これはわかりやすい例なのだろうか。少なくとも僕にはよくわからない。
オブジェクト指向を説明したいのはわかるが、やっぱり生物で説明するのはよく解らないと思う。
犬は飯を食うんだよとか、犬は散歩するんだよとか、思ってしまう。
# 僕がひねくれているだけかもしれないけど。


個人的には、最初に作るプログラムは電卓がよいと思っている。Javaを想定しているけど。
CUIにしろ、GUIにしろ、電卓は基本的に二つの数字を使って計算する。足し算も、割り算も。そのなかではプリミティブ型とクラスとの違いがわかる。Interfaceを使ってもいい。ポリモーフィズムを使ってもいい。


電卓はひとつの機能に特化したものだ。電卓はプログラムによって実装されているが、ほとんどの人が使ったことがある。
車輪の再発明ではないけど、すでにある機能を、自分の力で実装するということも大事だと思う。