Wolna encyklopedia

Ten artykuł dotyczy programowania. Zobacz też: inne znaczenia tego słowa.

Spis treści

Polimorfizm w programowaniu obiektowym

Polimorfizm w programowaniu obiektowym to wykazywanie różnych form działania podczas wywoływania metody w zależności od tego jakiego typu obiekt jest wskazywany przez wskaźnik lub referencję (pomijając typ wskaźnika lub referencji).

Zobacz też: metoda wirtualna, rzutowanie w górę

Polimorfizm w programowaniu funkcyjnym

to możliwość stosowania tej samej funkcji dla różnych typów parametrów. Najprostsza funkcja polimorficzna:

 function f (x){
   return x;
 }

zwróci wartość takiego typu, jakiego będzie przekazany jej argument.

Znacznie ciekawsze mogą być polimorficzne funkcje wyższego rzędu, np.:

 function f (g, x){
   return g (g (x));
 }

Ta funkcja przyjmuje dwa parametry. Drugi jest dowolnego typu α, zaś pierwszy jest funkcją przyjmującą argumenty typu α i zwracającą wartości również typu α (czyli jest typu α→α).

Polimorfizm statyczny

to inaczej programowanie generyczne. Jest to stosowalność tej samej procedury/funkcji do różnych typów argumentów, przy czym można statycznie (zazwyczaj w trakcie kompilacji) stwierdzić jaki będzie typ argumentów w trakcie wykonania. Przykładem są wzorce (template) w C++ oraz klasy generyczne w Javie.

Polimorfizm w wirusach komputerowych

W przypadku wirusów komputerowych polimorfizm oznacza występowanie różnych postaci jednego wirusa, jednak każda z występujących form nie została napisana, lecz powstała w wyniku działania tzw. silnika polimorficznego.

Wirusy takie określa się mianem wirusów polimorficznych. Silnik polimorficzny nie zmienia całego kodu wirusa, umożliwia on jedynie wygenerowanie nowego dekryptora.