オブジェクト指向プログラミングはポリモーフィズムから学べ(2) ~クラス導入編 後編〜

kasatate

今シリーズのまとめ

  1. オブジェクト指向プログラミングはポリモーフィズムから学べ

  2. オブジェクト指向プログラミングはポリモーフィズムから学べ(2) ~クラス導入編 前編~

  3. 本記事

  4. オブジェクト指向プログラミングはポリモーフィズムから学べ(3) ~カプセル化,継承~

はじめに

後編はオブジェクト指向言語のクラスは集合だけどメソッドという演算を持っていて群っぽいものだということと群っぽいならまとめて扱えるねとポリモーフィズムにつながる予定です。

群論

正直群論の詳しい部分については他でググるなり、本を読むなりしてほしいです。数学徒ではないので、詳しい説明はできませんが、誤解を恐れず言えば、群は代数的(演算)構造を持った集合です。巡回群とか置換群とかいろんな特殊な群がありますが、いずれも集合に関する演算を持っている集合です。まあ、群論の詳しい説明とか横道それすぎなので、ここらへんで勘弁してください。
ただ群論というものはかなり応用が利くもので、いろんな集合をまとめて考えることができるという便利さがあります。

クラスとポリモーフィズム 

群論がどうクラスと関係するかというとクラスは前編で言ったようにメソッドと呼ばれる処理、ぶっちゃけて言えば関数を持った集合です。
クラスで定義された集合の操作をしたいと思うのはプログラミングでは普通のことですが、その結果群的な構造を持ちます。クラスが群的なものになるため、プログラミング言語にクラスを導入した際、クラスは同じ構造をもたせることでまとめて扱えるようになります。
つまり、ポリモーフィズムが実現できます。

まとめ

クラスとポリモーフィズム がやっと結びついたので、これでクラス導入編はおしまいです。
ポリモーフィズムのためにプログラミング言語にクラスが導入されたわけではないですが、クラスによって型をもった集合が定義できたことでポリモーフィズムの表現の仕方が増えたことはプログラミングにとっておおきな進歩だったと思います。

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!