- 英
- polymorphism
- 関
- 多型
WordNet
- (chemistry) the existence of different kinds of crystal of the same chemical compound (同)pleomorphism
- (biology) the existence of two or more forms of individuals within the same animal species (independent of sex differences)
- (genetics) the genetic variation within a population that natural selection can operate on
Wikipedia preview
出典(authority):フリー百科事典『ウィキペディア(Wikipedia)』「2012/10/07 23:20:51」(JST)
[Wiki ja表示]
ポリモーフィズムあるいはポリモルフィズム(Polymorphism)とは、プログラミング言語の型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという性質を指す。多態性、多相性、多様性とも呼ばれる。対義語はモノモーフィズム(Monomorphism)、単態性、単相性で、プログラミング言語の各要素が唯一つの型に属するという性質を指す。
例
モノモーフィックな型システムを持つプログラミング言語では関数や手続きはそれぞれ一意に識別される名前と結びついており、従って異なった動作を実現するためには異なった名前を用いる必要があった。
例えば、何かの値を文字列形式に変換する最も単純な場合を考える。モノモーフィックな型システムを持つ言語では、次のように別々の関数になっていなければならない。
- 古典的な変換関数:
- 数値を文字列にする場合
string = StringFromNumber(number)
-
- 日付値を文字列にする場合
string = StringFromDate(date)
一方ポリモーフィックな型システムを持つ言語では、StringValue のような汎用の述語を定義し、型別にそれぞれ適切な変換方式を定義させることでオブジェクトの種別によらない抽象度の高い変換形式を実現できる。
- 多態を行なう変換方式:
- 見た目上、型によらない変換が可能
string = number.StringValue
string = date.StringValue
無論、StringValueの定義は型別に行なわなければならないので、総体として記述量が減少するわけではない(継承による再利用はありうる)。また、何をもって「正しい動作」とするのかはオブジェクトの設計に依存するため、多態を使いこなすにはシステム全体を見通す優れた設計能力が要求される。
参考文献
- Cardelli, Luca; Wegner, Peter (1986), “On Understanding Types, Data Abstraction, and Polymorphism”, ACM Computing Surveys 17 (4), http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf
関連項目
- 仮想関数テーブル
- 抽象化 (計算機科学)
- 型理論
- 型システム
- 総称型
- 継承
- 多重定義
- 型変換
- オーバーライド
- 多重ディスパッチ
- ダック・タイピング
UpToDate Contents
全文を閲覧するには購読必要です。 To read the full text you will need to subscribe.
Japanese Journal
- プラスチック氷の構造とダイナミクス (氷の物理と化学の新展開) -- (氷の分子運動とポリモルフィズム)
- アモルファス氷の構造緩和とポリアモルフィック転移 (氷の物理と化学の新展開) -- (氷の分子運動とポリモルフィズム)
- 高温高圧水の構造と動的性質 (氷の物理と化学の新展開) -- (氷の分子運動とポリモルフィズム)
- 池田 隆司,片山 芳則
- 低温科学 71, 125-129, 2013
- 環境に応じて多様な振る舞いを示す水の性質の解明は, 長い研究の歴史にもかかわらず, なお物理, 化学, 生物の主要な研究課題となっている. 本稿ではまず, 第一原理分子動力学法に基づく計算機シミュレーションと放射光X線回折実験を組み合わせることによって見えてきた高温高圧条件下での水の振る舞いを紹介し, 次に今後の展望に触れる.Although liquid water is one of the …
- NAID 120005228442
Related Links
- ポリモーフィズムあるいはポリモルフィズム(Polymorphism)とは、プログラミング言語の 型システムの性質を表すもので、プログラミング言語の各要素(定数、変数、式、 オブジェクト、関数、メソッドなど)についてそれらが複数の型に属することを許すという 性質を ...
- 6 日前 ... (1)「コウモリ」と「鳥」は別物だか似ている、ということ (2)一つのメッセージを送るだけで OK (3)いくらでも再利用したり、取り替えたりできる 言葉ほど難しくないが重要な「多態 性(ポリモルフィズム)」論 スタッフサービス ITソリューション事業本部 ...
Related Pictures