Polymorfismus je jedním ze základních konceptů objektově orientovaného programování. Na rozdíl od ostatních principů (zapouzdření, dědičnost, abstrakce apod.) se v případě polymorfismu jedná o poměrně komplikovanou záležitost (podívejte se třeba na Wikipedii), ale v podstatě se vše točí kolem jednoho pojmu, kterým je pozdní vazba.
Mým oblíbeným příkladem je zvířecí seznamka: objekt typu
Zvíře
má metodu představSe
, která sama
o sobě nevypisuje nic užitečného (např. „Jsem obecné
zvíře“). Odvozené třídy ale mohou s výhodou tuto metodu
překrýt a vypsat krátké představení sebe sama, např. „Jsem pes
Alík“ nebo „Jsem kočka Micka“. Metoda
PřidejDoSeznamky
pak může díky pozdní vazbě přijímat
obecný typ Zvíře
a spolehnout se, že volání metody
představSe
bude fungovat podle konkrétního zvířete a vypíše
se tedy smysluplná hláška namísto nicneříkajícího „Jsem obecné
zvíře“. Teoreticky řečeno, pozdní vazba (late binding) odkládá
rozhodnutí o konkrétní volané metodě až na dobu běhu, zatímco
brzká vazba (early binding) o volané metodě rozhoduje už při
kompilaci.
před 5 let 50 týdnů
před 5 let 50 týdnů
před 6 let 19 týdnů
před 6 let 34 týdny
před 6 let 46 týdnů
před 7 let 3 týdny
před 7 let 4 týdny
před 7 let 7 týdnů
před 7 let 13 týdnů
před 7 let 22 týdny