[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 メーリングリストの案内