Diferența cheie – Legarea timpurie vs. tardivă
Legarea timpurie și Legarea târzie sunt două concepte legate de polimorfism. Legarea timpurie are loc în timpul compilării, în timp ce legarea târzie are loc în timpul execuției. Diferența cheie dintre Legarea timpurie și Legarea târzie este că Legarea timpurie folosește informațiile despre clasă pentru a rezolva apelarea metodei, în timp ce Legarea tardivă folosește obiectul pentru a rezolva apelarea metodei.
Limbajele de programare precum Java acceptă programarea orientată pe obiecte (OOP). Este o paradigmă care permite construirea programului sau a software-ului folosind obiecte. Există mai multe obiecte în software. Aceste obiecte sunt conectate între ele și transmit mesaje folosind metode. Fiecare obiect are caracteristici și comportamente. Caracteristicile sunt descrise de proprietăți sau atribute. Comportamentele sunt descrise folosind metode. Obiectul Student poate avea caracteristici precum numele, vârsta și sunt reprezentate prin proprietăți. Obiectul Student poate avea comportamente precum studiul și cititul și sunt reprezentate prin metode. Un pilon major al OOP este polimorfismul. Permite unui obiect să se comporte în mai multe moduri. Legarea timpurie și Legarea târzie sunt două concepte în polimorfism. Metodele de supraîncărcare sunt legate folosind legarea timpurie. Metodele anulate sunt legate folosind legarea tardivă.
Ce este legarea anticipată?
În Early Binding, informațiile despre clasă sunt folosite pentru a rezolva apelarea metodei. Legarea timpurie are loc în timpul compilării. Este, de asemenea, cunoscut sub numele de legarea statică. În acest proces, legarea are loc înainte ca programul să ruleze efectiv. Metodele de supraîncărcare sunt legate folosind legarea timpurie. Consultați programul de mai jos.
Figura 01: Clasa de calcul
Figura 02: Programul principal pentru legarea timpurie
Conform programului de mai sus, clasa Calculation conține o metodă de adunare care acceptă două valori întregi și o altă metodă de adunare care acceptă două valori duble. În programul principal, este creat un obiect de tip Calcul. Când treceți două numere întregi la metoda de adăugare, aceasta va invoca metoda de adăugare care acceptă două numere întregi. Când treceți două valori duble la metoda de adăugare, aceasta va invoca metoda corespunzătoare a două valori duble. Acest proces de legare are loc în timpul compilării. Toate informațiile necesare sunt cunoscute înainte de rulare, astfel încât crește eficiența programului și viteza de execuție.
Ce este legarea tardivă?
În Late Binding, obiectul este folosit pentru a rezolva apelarea metodei. Legarea tardivă are loc în timpul execuției. Este, de asemenea, cunoscut sub numele de legare dinamică. În acest proces, legarea are loc la execuția programului. Metodele anulate sunt legate folosind legarea tardivă. Consultați programul de mai jos.
Figura 03: Clasa de formă
Figura 04: Clasa în cerc
Figura 05: Clasa Triunghi
Figura 06: Programul principal pentru legarea tardivă
Conform programului de mai sus, clasa Shape are o metodă de desen. Clasa Cerc și clasa Triunghi extinde clasa Shape. Prin urmare, aceste două clase pot moșteni atributele și metodele clasei Shape. Shape Class este clasa de bază. Clasele Cerc și Triunghi sunt clase derivate. Clasa Circle și clasa Triangle au și metoda draw cu propriile lor implementări. Deci, metoda draw din clasa Shape este suprascrisă de metodele draw ale claselor derivate.
În programul principal, este creată o variabilă de referință de tip Shape. În timpul compilării, compilatorul va face referire doar la metoda de desenare a clasei de bază. În timpul execuției, se vor executa diferite metode de desen. Mai întâi, s va indica obiectul de tip Shape. Deci, metoda draw a clasei Shape este invocată. Apoi s-ul va indica obiectul de tip Circle și va invoca metoda draw a clasei Circle. În cele din urmă, s va indica obiectul de tip Triunghi și va invoca metoda draw în clasa Triunghi. Metodele sunt apelate în funcție de obiecte. Prin urmare, obiectul este utilizat pentru a rezolva apelarea metodei în Late Binding. Informațiile necesare pentru legare sunt furnizate în timpul execuției, astfel încât viteza de execuție este mai lentă în comparație cu legarea timpurie.
Care este asemănarea dintre legarea timpurie și legarea tardivă?
Atât legarea timpurie, cât și legarea tardivă sunt legate de polimorfismul care este un pilon al OOP
Care este diferența dintre legarea timpurie și legarea tardivă?
Legarea timpurie vs. legarea tardivă |
|
Procesul de utilizare a informațiilor de clasă pentru a rezolva apelarea metodei care are loc în timpul compilării se numește Legare timpurie. | Procesul de utilizare a obiectului pentru a rezolva apelarea metodei care are loc în timpul rulării se numește Legare târzie. |
Ora de legare | |
Legarea timpurie are loc în timpul compilării. | Legarea tardivă are loc în timpul executării. |
Funcționalitate | |
Early Binding folosește informațiile despre clasă pentru a rezolva apelarea metodei. | Late Binding folosește obiectul pentru a rezolva apelarea metodei. |
Sinonime | |
Legarea timpurie este cunoscută și sub denumirea de legare statică.. | Legarea tardivă este cunoscută și sub denumirea de legare dinamică. |
Apariție | |
Metodele de supraîncărcare sunt legate folosind legarea timpurie. | Metodele anulate sunt legate folosind legarea tardivă. |
Viteza de execuție | |
Viteza de execuție este mai rapidă în legarea timpurie. | Viteza de execuție este mai mică în legarea târzie. |
Rezumat – Legarea timpurie vs. tardivă
OOP este folosit în mod obișnuit pentru dezvoltarea de software. Un pilon major al POO este polimorfismul. Legarea timpurie și Legarea târzie sunt legate de asta. Legarea timpurie are loc în timpul compilării, în timp ce Legarea târzie are loc în timpul execuției. În supraîncărcarea metodei, legarea are loc folosind legarea timpurie. În anularea metodei, legarea are loc folosind legarea târzie. Diferența dintre Early și Late Binding este că Early Binding utilizează informațiile despre clasă pentru a rezolva apelarea metodei, în timp ce Late Binding folosește obiectul pentru a rezolva apelarea metodei.