Kľúčový rozdiel – skoré a neskoré viazanie
Skoré viazanie a neskoré viazanie sú dva pojmy súvisiace s polymorfizmom. Skorá väzba sa vyskytuje v čase kompilácie, zatiaľ čo neskorá väzba sa vyskytuje počas behu. Kľúčový rozdiel medzi skorým a neskorým viazaním je v tom, že skoré viazanie používa informácie o triede na vyriešenie volania metódy, zatiaľ čo neskoré viazanie používa objekt na vyriešenie volania metódy.
Programovacie jazyky ako Java podporujú objektovo orientované programovanie (OOP). Je to paradigma, ktorá umožňuje zostaviť program alebo softvér pomocou objektov. V softvéri je viacero objektov. Tieto objekty sú navzájom prepojené a odovzdávajú si správy pomocou metód. Každý objekt má vlastnosti a správanie. Charakteristiky sú opísané vlastnosťami alebo atribútmi. Správanie je opísané pomocou metód. Objekt Študent môže mať vlastnosti ako meno, vek a sú reprezentované vlastnosťami. Objekt Študent môže mať správanie, ako je štúdium a čítanie, a sú reprezentované metódami. Jedným z hlavných pilierov OOP je polymorfizmus. Umožňuje objektu správať sa viacerými spôsobmi. Včasná väzba a neskorá väzba sú dva pojmy v polymorfizme. Metódy preťaženia sú spojené pomocou skorej väzby. Prepísané metódy sú spojené pomocou neskorej väzby.
Čo je to Early Binding?
V Early Binding sa informácie o triede používajú na vyriešenie volania metódy. Včasné viazanie nastáva v čase kompilácie. Je tiež známy ako statická väzba. V tomto procese k väzbe dôjde pred skutočným spustením programu. Metódy preťaženia sú spojené pomocou skorej väzby. Pozrite si program nižšie.
Obrázok 01: Trieda výpočtu
Obrázok 02: Hlavný program pre včasné viazanie
Podľa vyššie uvedeného programu trieda Výpočet obsahuje metódu sčítania, ktorá akceptuje dve celočíselné hodnoty a ďalšiu metódu sčítania, ktorá akceptuje dve hodnoty typu double. V hlavnom programe sa vytvorí objekt typu Výpočet. Pri odovzdávaní dvoch celých čísel metóde add vyvolá metódu add, ktorá akceptuje dve celé čísla. Pri odovzdávaní dvoch dvojitých hodnôt metóde add vyvolá metódu zodpovedajúcu dvom dvojitým hodnotám. Tento proces viazania prebieha v čase kompilácie. Všetky požadované informácie sú známe ešte pred spustením, čo zvyšuje efektivitu programu a rýchlosť vykonávania.
Čo je Late Binding?
V neskorej väzbe sa objekt používa na vyriešenie volania metódy. Neskorá väzba sa vyskytuje za behu. Je tiež známa ako dynamická väzba. V tomto procese sa väzba vyskytuje pri vykonávaní programu. Prepísané metódy sa spájajú pomocou neskorej väzby. Pozrite si program nižšie.
Obrázok 03: Trieda tvaru
Obrázok 04: Kruhová trieda
Obrázok 05: Triangle Triangle
Obrázok 06: Hlavný program pre neskoré viazanie
Podľa vyššie uvedeného programu má trieda Shape metódu kreslenia. Class Circle a class Triangle trieda rozširuje triedu Shape. Preto tieto dve triedy môžu zdediť atribúty a metódy triedy Shape. Trieda tvaru je základná trieda. Triedy Circle a Triangle sú odvodené triedy. Triedy Circle a Triangle majú tiež metódu kreslenia s vlastnými implementáciami. Takže metóda kreslenia v triede Shape je prepísaná metódami kreslenia odvodených tried.
V hlavnom programe sa vytvorí referenčná premenná s typu Shape. V čase kompilácie bude kompilátor odkazovať iba na metódu kreslenia základnej triedy. Počas behu sa vykonajú rôzne metódy kreslenia. Najprv bude s ukazovať na objekt typu Shape. Vyvolá sa teda metóda draw triedy Shape. Potom s bude ukazovať na objekt typu Circle a vyvolá metódu draw triedy Circle. Nakoniec s ukáže na objekt typu Triangle a vyvolá metódu draw v triede Triangle. Metódy sa volajú v závislosti od objektov. Preto sa objekt používa na vyriešenie volania metódy v Late Binding. Informácie potrebné na viazanie sa poskytujú v čase spustenia, takže rýchlosť vykonávania je pomalšia v porovnaní so skorým viazaním.
Aká je podobnosť medzi skorým viazaním a neskorým viazaním?
Včasná väzba aj neskorá väzba súvisia s polymorfizmom, ktorý je pilierom OOP
Aký je rozdiel medzi skorým viazaním a neskorým viazaním?
Skoré viazanie verzus neskoré viazanie |
|
Proces použitia informácií o triede na vyriešenie volania metódy, ku ktorému dochádza v čase kompilácie, sa nazýva Early Binding. | Proces použitia objektu na vyriešenie volania metódy, ku ktorému dochádza v čase spustenia, sa nazýva neskoré viazanie. |
Čas viazanosti | |
Skorá väzba prebieha v čase kompilácie. | Neskorá väzba prebieha počas spustenia. |
Funkčnosť | |
Skoré viazanie používa informácie o triede na vyriešenie volania metódy. | Late Binding používa objekt na vyriešenie volania metódy. |
Synonymá | |
Skoré viazanie je známe aj ako statické viazanie.. | Neskorá väzba je známa aj ako dynamická väzba. |
Výskyt | |
Metódy preťažovania sú spojené pomocou včasnej väzby. | Prepísané metódy sú spojené pomocou neskorej väzby. |
Rýchlosť vykonania | |
Rýchlosť vykonávania je vyššia pri včasnej väzbe. | Rýchlosť vykonávania je pri neskorej väzbe nižšia. |
Súhrn – skoré verzus neskoré viazanie
OOP sa bežne používa na vývoj softvéru. Jedným z hlavných pilierov OOP je polymorfizmus. S tým súvisí Early Binding a Late Binding. Včasná väzba sa vyskytuje v čase kompilácie, zatiaľ čo neskorá väzba sa vyskytuje v čase spustenia. Pri preťažení metódy sa spojenie uskutočňuje pomocou skorého viazania. Pri prepisovaní metódy sa spojenie uskutočňuje pomocou neskorého viazania. Rozdiel medzi skorým a neskorým viazaním je v tom, že skoré viazanie používa informácie o triede na vyriešenie volania metódy, zatiaľ čo neskoré viazanie používa objekt na vyriešenie volania metódy.