Polimorfizm to jedna z podstawowych cech programowania obiektowego. Oznacza możliwość traktowania różnych obiektów w jednakowy sposób, jeśli mają wspólny typ bazowy, interfejs lub wspólną metodę.
Na czym polega polimorfizm?
Polimorfizm pozwala wywołać tę samą metodę na różnych obiektach, a każdy obiekt może wykonać ją inaczej. Programista korzysta ze wspólnego sposobu użycia, ale szczegóły działania zależą od konkretnej klasy.
Przykład koncepcyjny
Załóżmy, że istnieje klasa bazowa Figura z metodą obliczPole(). Klasy Kwadrat, Kolo i Trojkat mogą dziedziczyć po Figura i każda z nich może inaczej obliczać pole. Kod może jednak traktować wszystkie te obiekty jako figury.
Rodzaje polimorfizmu spotykane w praktyce
- nadpisywanie metod - klasa pochodna zmienia działanie metody odziedziczonej po klasie bazowej,
- metody wirtualne - często używane np. w C++ do wywoływania właściwej wersji metody w czasie działania programu,
- interfejsy i klasy abstrakcyjne - pozwalają określić wspólny zestaw operacji dla różnych klas.
Znaczenie egzaminacyjne
Polimorfizm jest mocno związany z programowaniem obiektowym. Jeśli w pytaniu występują razem dziedziczenie i polimorfizm, poprawną odpowiedzią zwykle jest programowanie obiektowe.