În programarea software, programarea orientată pe obiecte (OOP) este un cadru care încearcă să creeze obiecte din lucruri din lumea reală. Teoria și practica polimorfismului sunt puternic încurajate în cadrul principiilor OOP. În general, un obiect ar trebui să fie creat pentru a avea caracteristici și comportamente de bază, cu înțelegerea că acestea se vor schimba atunci când va deveni un anumit tip.
Polimorfismul este capacitatea de a avea o variabilă, o funcție sau un obiect cu mai multe semnificații în cadrul programului. Există mai multe modele de arhitectură care demonstrează polimorfismul. Aceste modele subliniază modul în care un obiect va fi reutilizat într-o aplicație pentru mai multe scopuri.
Multe limbaje de programare acceptă utilizarea polimorfismului. Acest proces permite reutilizarea regulilor de afaceri și a codului software în cadrul unei aplicații. Nu toate limbajele de programare acceptă un comportament polimorf complet, dar majoritatea acceptă conceptul de bază. Toate adevăratele limbaje OOP, inclusiv Java®, .net și C++®, acceptă abordări și tehnici mai avansate.
Un cont bancar este un bun exemplu de obiect de bază care ar putea suporta polimorfismul. Toate conturile bancare au numere de cont, nume și sold. Ceea ce face un cont unic este tipul de cont. Câteva exemple de tipuri sunt conturile de economii, conturile curente sau conturile de pe piața monetară. În cadrul polimorfismului, un cont bancar ar fi obiectul de bază cu conturile mai specifice folosind caracteristicile contului bancar de bază. Fiecare cont ar putea avea apoi comportamente suplimentare pentru a susține ratele dobânzilor sau penalități de retragere în timp ce reutiliza informațiile despre un cont bancar.
Utilizarea teoriilor polimorfismului economisește timp dezvoltatorilor prin reducerea pierderii de cod. Face codul mai ușor de scris și mai ușor de înțeles pentru alții. În plus, face software-ul extensibil, deoarece tipurile viitoare pot fi adăugate ulterior folosind obiectul strămoș de bază din codul existent. În general, aplicațiile dezvoltate în acest mod sunt mai flexibile și mai ușor de extins, necesitând mai puțin cod pentru modificările viitoare
Teoriile polimorfismului se aplică și funcțiilor. O funcție este o bucată de cod software care îndeplinește o anumită sarcină. Funcțiile pot fi scrise și într-o manieră polimorfă. Această abordare face codul mai flexibil, deoarece funcțiile pot fi reutilizate pentru alte reguli de afaceri din software.
Un bun exemplu de polimorfism cu o funcție ar fi o funcție de sortare. Acest tip de funcție ar sorta o listă de numere. O funcție polimorfă nu poate sorta doar numere, ci și orice tip de obiecte. Acest lucru face funcția mai eficientă, deoarece funcționează pe mai multe tipuri de date.