Polimorfizm

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

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.