U softverskom programiranju, objektno orijentirano programiranje (OOP) je okvir koji pokušava stvoriti objekte iz stvarnih stvari. Teorija i praksa polimorfizma snažno se potiču unutar OOP principa. Općenito, objekt bi trebao biti kreiran tako da ima osnovne značajke i ponašanja uz razumijevanje da će se to promijeniti kada postane specifičan tip.
Polimorfizam je sposobnost posjedovanja varijable, funkcije ili objekta s više od jednog značenja unutar programa. Postoji više arhitektonskih dizajna koji pokazuju polimorfizam. Ovi dizajni ocrtavaju kako će se objekt ponovno upotrijebiti unutar aplikacije u više namjena.
Mnogi programski jezici podržavaju korištenje polimorfizma. Ovaj proces omogućuje ponovnu upotrebu poslovnih pravila i softverskog koda u cijeloj aplikaciji. Ne podržavaju svi programski jezici potpuno polimorfno ponašanje, ali većina podržava osnovni koncept. Svi pravi OOP jezici uključujući Java®, .net i C++® podržavaju naprednije pristupe i tehnike.
Bankovni račun je dobar primjer osnovnog objekta koji može podržati polimorfizam. Svi bankovni računi imaju brojeve računa, nazive i stanje. Ono što račun čini jedinstvenim je vrsta računa. Neki primjeri vrsta su štedni računi, tekući računi ili računi na tržištu novca. Unutar polimorfizma, bankovni račun bi bio osnovni objekt s specifičnijim računima koji koriste značajke osnovnog bankovnog računa. Svaki račun bi tada mogao imati dodatna ponašanja koja podržavaju kamatne stope ili kazne za povlačenje uz ponovnu upotrebu informacija o bankovnom računu.
Korištenje teorija polimorfizma programerima štedi vrijeme smanjenjem izgubljenog koda. To čini kod lakšim za pisanje i lakšim za razumijevanje drugima. Dodatno, čini softver proširivim, jer se budući tipovi mogu naknadno dodati pomoću osnovnog objekta pretka unutar postojećeg koda. Općenito, aplikacije razvijene na ovaj način su fleksibilnije i lakše ih je proširiti zahtijevajući manje koda za buduće izmjene
Teorije polimorfizma također se primjenjuju na funkcije. Funkcija je dio softverskog koda koji obavlja određeni zadatak. Funkcije se također mogu napisati na polimorfan način. Ovaj pristup čini kod fleksibilnijim jer se funkcije mogu ponovno koristiti za druga poslovna pravila unutar softvera.
Dobar primjer polimorfizma s funkcijom bila bi funkcija sortiranja. Ova vrsta funkcije sortira popis brojeva. Polimorfna funkcija ne samo da je mogla sortirati brojeve već je mogla sortirati i bilo koju vrstu objekata. To čini funkciju učinkovitijom jer radi na više vrsta podataka.