Полиморфизам (рачунарство) — разлика између измена

 
=== Параметарски полиморфизам ===
 
''Параметарски полиморфизам'' почива на употреби тзв. типских променљивих. Типске променљиве се користе за симболичко означавање типова вредности, променљивих и израза. Сваки пут када се употреби код, који је написан уз употребу параметарског полиморфизма, симбилички типови (типске променљиве) се замењују конкретним типовима и програм се преводи у неполиморфном облику. Да би превођење било успешно, неопходно је да у свим деловима тог полиморфног кода замењивање симболичких типова конкретним типовима производи исправан програмски код. Ако то није случај, тј. ако је за конкретан тип изабран неки тип за који дати програмски код није исправан, онда ће преводилац пријавити грешку.
 
 
Подршка за параметарски полиморфизам постоји и у неколико објектно-оријентисаних језика. На пример, подршка за параметарски полиморфизам у програмском језику Ц++ и Д је имплементирана кроз концепт шаблона функција и класа. Шаблон функције представља функцију у којој се употребљава неки параметарски (симболички) тип. Слично, шаблон класе је дефиниција класе која почива на употреби једног или више симболичких типова:
 
 
<source lang=csharp>
 
Џон Ч. Рејнолдс (и касније Жан-Ив Жирар) је формално развио појам полиморфизма као проширење ламбда рачуна (који се зове полиморфни ламбда рачун или [[Систем Ф]]). Било која параметарски полиморфна функција је нужно ограничена, радећи на типовима података уместо на њиховим вредностима, што је довело до концепта параметризације.
 
 
=== Хијерархијски полиморфизам ===