[SML 7521] オーバロードはポリモフィズムか?

Hidetaka MASUDA masuda @ im.dendai.ac.jp
2009年 4月 30日 (木) 17:08:35 JST


増田@電大です。

最近、悩んでいることがあります。「ポリモフィズムを実現する方法の一つに
オーバロードがある」って書いてあるWebページをよく見るんです。何か気持悪
いんです。メソッドのシグネチャ (メソッド名、引数、戻り値の型) が違うのに
ポリモフィズムと言うんだろうかと。

・抽象クラスの抽象メソッドを具象クラスでオーバライドする
・(Javaなどの)インタフェースを宣言して、実装クラスでメソッドを実装する

の2つはポリモフィズムを実現する方法だと思うんですが。なぜなら、メッセー
ジの送り手は一切変更なしで動きますよね。オーバロードは引数の数なんかが変
わったら送り手はそれに合わせて変更しないとだめですよね。

そもそもポリモフィズムの定義って何ですかね。

「同じメッセージを異なるオブジェクトに送った場合、メッセージを受け取った
オブジェクトの種類によって異なる動作をしてもよい。」と思っていたんです。
「同じメッセージ」とは「メソッドのシグネチャが同じ」という意味です。
「メッセージ名が同じ」という意味ではありません。

いかがでしょうか?

-- 
------
〒101-8457 東京電機大学 未来科学部 情報メディア学科  増田 英孝
E-mail: masuda @ im.dendai.ac.jp                TEL 03-5280-3551
http://www.cdl.im.dendai.ac.jp/%7emasuda/     FAX 03-5280-3592
It's more fun to compute!


SML メーリングリストの案内