[B]オブジェクト指向プログラミングとは 独習C++練習問題1.1

問題:
分類とポリモーフィズムが、私たちの日常生活の中で果たしている重要な役割について考えなさい。


  • 分類とは、事物現象のある側面を見て、区分し整頓することである。
  • ポリモーフィズムとは、1つの名前を2つ以上の関連する目的に使用できる性質のことである。(本文引用)

問題は、重要な役割というが、そもそも重要なのであろうか?

本文では、分類について、セロリを例に挙げている。
あるセロリは、セロリというクラスに属し、
セロリクラスは、野菜クラスに属す。野菜クラスは植物クラスに属す。植物クラスは生物クラスに属す。階層的な分類がなければ、知識の組織化は不可能と言っている。

ポリモーフィズムについては、パワステを例に挙げている。
すなわち、電動パワステであっても、油圧パワステであっても、重ステであっても、インターフェイスであるハンドルは同じである、と言っている。

したがって、

  • 階層的な分類がなければ、知識の組織化は不可能
  • インターフェイスの統一化
が重要であると主張したいのだろう。


素直に考えてみれば、ポリムーフィズムは、言語において一般的である。
「人間」と言った場合、生物学上の人間を指す場合もあるし、社会上の人間を指す場合もあるだろう。
そこで、解釈の統一化を図るために、分類が発生する。
解釈の概念により、区分することで、その知識を共有化することができる。

要するに、単純で素直なコミュニケーション手段が、分類とポリモーフィズムによって成り立っているのであり、それ以外のコミュニケーション手段が複雑であるのだ。

重要というのは語弊である。より一般的な伝達の役割を果たしているといってよいだろう。