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.
Tento blog je v "read-only módu" a nový obsah již nebude přibývat. O vývoji píšu na
před 6 let 33 týdny
před 6 let 33 týdny
před 7 let 3 týdny
před 7 let 18 týdnů
před 7 let 30 týdnů
před 7 let 39 týdnů
před 7 let 40 týdnů
před 7 let 43 týdny
před 7 let 49 týdnů
před 8 let 6 týdnů