Včasná vazba a pozdní vazba jsou dva koncepty související s polymorfismem. K časné vazbě dochází v době kompilace, zatímco k pozdní vazbě dochází za běhu. klíčový rozdíl mezi časnou a pozdní vazbou je to Včasné vázání používá informace třídy k vyřešení volání metody, zatímco Pozdní vazba používá objekt k vyřešení volání metody.
Programovací jazyky, jako je Java, podporují Object Oriented Programming (OOP). Je to paradigma, které umožňuje sestavení programu nebo softwaru pomocí objektů. V softwaru je více objektů. Tyto objekty jsou vzájemně propojeny a předávají zprávy pomocí metod. Každý objekt má vlastnosti a chování. Vlastnosti jsou popsány vlastnostmi nebo atributy. Chování je popsáno pomocí metod. Objekt Student může mít vlastnosti jako jméno, věk a jsou reprezentovány vlastnostmi. Objekt Student může mít chování, jako je studium a čtení, a jsou reprezentovány metodami. Jedním z hlavních pilířů OOP je polymorfismus. Umožňuje objektu chovat se více způsoby. Včasná vazba a pozdní vazba jsou dva koncepty v polymorfismu. Metody přetížení jsou spojeny pomocí časné vazby. Přepsané metody jsou spojeny pomocí pozdní vazby.
1. Přehled a klíčový rozdíl
2. Co je brzké vázání
3. Co je pozdní vazba
4. Podobnosti mezi časnou a pozdní vazbou
5. Porovnání vedle sebe - Včasné vs Pozdní vazby v tabulkové formě
6. Shrnutí
V Early Binding se informace o třídě používají k vyřešení volání metody. Včasné vázání nastává v době kompilace. To je také známé jako statická vazba. V tomto procesu dojde k vazbě před skutečným spuštěním programu. Metody přetížení jsou spojeny pomocí časné vazby. Viz níže uvedený program.
Obrázek 01: Třída výpočtu
Obrázek 02: Hlavní program včasné vazby
Podle výše uvedeného programu třída výpočtu obsahuje metodu add, která přijímá dvě celočíselné hodnoty a další metodu add, která přijímá dvě dvojité hodnoty. V hlavním programu je vytvořen objekt typu Výpočet. Při předávání dvou celých čísel metodě add vyvolá metodu add, která přijímá dvě celá čísla. Při předávání dvou dvojitých hodnot metodě add vyvolá metodu odpovídající dvěma dvojitým hodnotám. K tomuto procesu vázání dochází v době kompilace. Všechny požadované informace jsou známy před spuštěním, takže zvyšuje účinnost programu a rychlost provádění.
V Late Binding se objekt používá k vyřešení volání metody. Pozdní vazba nastává za běhu. Je také známý jako dynamická vazba. V tomto procesu dochází k vazbě při spuštění programu. Přepsané metody jsou spojeny pomocí pozdní vazby. Viz níže uvedený program.
Obrázek 03: Třída tvaru
Obrázek 04: Kruhová třída
Obrázek 05: Třída trojúhelníku
Obrázek 06: Hlavní program pro pozdní vazbu
Podle výše uvedeného programu má třída Shape metodu draw. Třída Kruh a třída Tříúhelník rozšiřuje třídu Tvar. Proto tyto dvě třídy mohou zdědit atributy a metody třídy Shape. Tvar třídy je základní třída. Třídy Circle a Triangle jsou odvozené třídy. Třída Circle a Class Triangle mají také metodu draw s vlastní implementací. Metoda draw ve třídě Shape je tedy potlačena metodami draw odvozených tříd.
V hlavním programu se vytvoří referenční proměnná typu Tvar. V době kompilace bude kompilátor odkazovat pouze na metodu kreslení základní třídy. Za běhu se spustí různé metody kreslení. Nejprve bude s odkazovat na objekt typu Shape. Je tedy vyvolána metoda draw třídy Shape. Poté s ukazuje na objekt typu Circle a vyvolá metodu draw třídy Circle. Nakonec s odkazuje na objekt typu Triangle a vyvolá metodu draw ve třídě Triangle. Metody jsou volány v závislosti na objektech. Objekt se proto používá k řešení metody volání v pozdní vazbě. Informace potřebné pro vazbu jsou poskytovány v době běhu, takže rychlost provádění je ve srovnání s časnou vazbou pomalejší.
Včasné vázání vs. pozdní vázání | |
Proces použití informací o třídě k vyřešení volání metody, ke kterému dochází v době kompilace, se nazývá Brzy vazba. | Proces použití objektu k vyřešení volání metody, ke kterému dochází v době spuštění, se nazývá pozdní vazba. |
Čas vazby | |
Včasné vázání se děje v době kompilace. | Pozdní vazba se děje za běhu. |
Funkčnost | |
Early Binding používá informace třídy k vyřešení volání metody. | Pozdní vazba používá objekt k vyřešení volání metody. |
Synonyma | |
Včasné vázání se také nazývá statické vázání… | Pozdní vazba je také známá jako dynamická vazba. |
Výskyt | |
Metody přetížení jsou spojeny pomocí časné vazby. | Přepsané metody jsou spojeny pomocí pozdní vazby. |
Rychlost provádění | |
Rychlost provádění je rychlejší při včasné vazbě. | Rychlost provádění je při pozdní vazbě nižší. |
OOP se běžně používá pro vývoj softwaru. Jedním z hlavních pilířů OOP je polymorfismus. S tím souvisí časná vazba a pozdní vazba. Včasné vázání nastává v době kompilace, zatímco pozdní vazba probíhá za běhu. Při přetížení metody dochází k propojení pomocí časné vazby. V převažující metodě dochází ke spojení pomocí pozdní vazby. Rozdíl mezi časným a pozdějším vázáním spočívá v tom, že včasné vázání používá informace třídy k vyřešení volání metody, zatímco pozdní vazba používá objekt k vyřešení volání metody.
1.Java Interview 04 - Statická vazba Vs Dynamická vazba, Kurzy pro Mahiku, 27. prosince 2017. K dispozici zde
2.Dynamic Method Dispatch in Java | Základní Java výukový program Studytonight. K dispozici zde