この記事を読むと、、
- 「関連用語」を使って「Polymorphism」を説明できるようになる
- 「Polymorphism」がもっと好きになる(多分)
関連用語
アドホック多相 / パラメトリック多相 / サブタイピング
[復習用] 記事の内容を見る前に上記の言葉で「Polymorphism」を説明してみよう!
企画説明
- クラウドって何?って人に聞かれて説明してるけど俺もよく知らないや、、
- ドキュメント読んでみてるけど半分くらい何言ってるか分かんない、、
- 今日の夕飯はナスの炒めものにしよっかな〜、あれ、NASってなんだっけ?
みたいなことが結構あったので、知ったかしていたIT用語を毎日一個ずつちゃんと学んでいこうっていう企画です!
昨日の記事はこちら↓
Polymorphismとは
Polymorphism = 多相性 = 多態性 = 単一のインターフェースで様々な型に対応した処理を実行できる実装
-
カプセル化、継承に並びOOPにおける重要な性質の一つ
- ただし、PolymorphismはOOPLに限った用語ではない
-
以下の3つに(ぼんやりと)分類できる
- アドホック多相 = 同一の名前を持つ関数やメソッドを文脈(ex. 実引数の型)に対応して複数定義すること(オーバーロード)
-
パラメトリック多相 = 抽象的な型を用いて関数やデータ型を記述すること
- ex. C++のテンプレート、Javaのジェネリクス
-
サブタイピング
- スーパークラスのインスタンスをサブクラスのインスタンスで安全に代替できる継承の用法
- ざっくりいうと、
class Aを継承したclass BがあったときにA a = new B();ができる