7/2(月)よりスマホまたはPCでアクセスした場合、各デバイス向けのサイトへ自動で転送致します
ポリモーフィズム(多態性)とは、プログラムのコンポーネントが複数の型を持ちうる性質のことである。
例えば Java では、int には int の配列 Array<int>、String には String の配列 Array<String> というふうに、一般に型 T に対して Array<T> が存在する。
このように、型変数 T によって、新しい型 S<T> を作れる S の性質を、parametric polymorphic と言う。
つまり、プログラムのコンポーネントである S が、型変数 T によって複数の型 S<T> を持つので、ポリモーフィックなのである。
C++のtemplateや、JavaのGenericsなどで実装されている。
例えば Java では、どんなオブジェクトでも Object クラスのインスタンスとして振る舞うことができるように、
型 T が必要な場所に、その sub type である S 型を置くことができる。
"hoge".getClass() という文では、Object のメソッドであるはずの getClass を、Objectの子クラスである String のオブジェクトに適用している。
このように、型 T が必要な場所に、型 T の sub type である型 S を置ける性質を ad-hoc polymorphic と言う。
▲