W programowaniu oprogramowania programowanie obiektowe (OOP) to framework, który próbuje tworzyć obiekty z rzeczy ze świata rzeczywistego. Teoria i praktyka polimorfizmu są silnie wspierane w zasadach OOP. Ogólnie rzecz biorąc, obiekt powinien być stworzony tak, aby miał podstawowe cechy i zachowania z założeniem, że zmienią się one, gdy stanie się określonym typem.
Polimorfizm to możliwość posiadania zmiennej, funkcji lub obiektu o więcej niż jednym znaczeniu w programie. Istnieje wiele projektów architektury, które wykazują polimorfizm. Projekty te określają, w jaki sposób obiekt zostanie ponownie wykorzystany w aplikacji do wielu celów.
Wiele języków programowania obsługuje użycie polimorfizmu. Proces ten umożliwia ponowne wykorzystanie reguł biznesowych i kodu oprogramowania w całej aplikacji. Nie wszystkie języki programowania obsługują pełne zachowanie polimorficzne, ale większość obsługuje podstawową koncepcję. Wszystkie prawdziwe języki OOP, w tym Java®, .net i C++®, obsługują bardziej zaawansowane podejścia i techniki.
Konto bankowe jest dobrym przykładem obiektu bazowego, który może obsługiwać polimorfizm. Wszystkie konta bankowe mają numery kont, nazwy i saldo. To, co sprawia, że konto jest wyjątkowe, to typ konta. Niektóre przykłady typów to konta oszczędnościowe, konta czekowe lub konta rynku pieniężnego. W ramach polimorfizmu konto bankowe byłoby obiektem bazowym z bardziej szczegółowymi rachunkami wykorzystującymi cechy bazowego konta bankowego. Każde konto mogłoby wówczas mieć dodatkowe zachowania wspierające stopy procentowe lub kary za wypłatę przy ponownym wykorzystaniu informacji o koncie bankowym.
Korzystanie z teorii polimorfizmu oszczędza czas programistów, redukując zmarnowany kod. Sprawia, że kod jest łatwiejszy do pisania i łatwiejszy do zrozumienia dla innych. Dodatkowo sprawia, że oprogramowanie jest rozszerzalne, ponieważ przyszłe typy mogą być dodawane później przy użyciu podstawowego obiektu przodka w istniejącym kodzie. Ogólnie rzecz biorąc, aplikacje opracowane w ten sposób są bardziej elastyczne i łatwiejsze do rozbudowy, wymagając mniej kodu do przyszłych modyfikacji
Teorie polimorfizmu dotyczą również funkcji. Funkcja to fragment kodu oprogramowania, który wykonuje określone zadanie. Funkcje można również pisać w sposób polimorficzny. Takie podejście sprawia, że kod jest bardziej elastyczny, ponieważ funkcje mogą być ponownie wykorzystywane do innych reguł biznesowych w oprogramowaniu.
Dobrym przykładem polimorfizmu z funkcją byłaby funkcja sortowania. Ten typ funkcji posortuje listę liczb. Funkcja polimorficzna może nie tylko sortować liczby, ale także sortować dowolne typy obiektów. Dzięki temu funkcja jest bardziej wydajna, ponieważ działa na wielu typach danych.