Tidigbindande och senbindning är två begrepp relaterade till polymorfism. Den tidiga bindningen sker vid kompileringstid medan senbindningen sker vid körning. De nyckelskillnad mellan tidig och sen bindning är det Tidig bindning använder klassinformationen för att lösa metoden som ringer medan senbindning använder objektet för att lösa metodanrop.
Programmeringsspråk som Java stöder Objektorienterad programmering (OOP). Det är ett paradigm som låter bygga programmet eller programvaran med hjälp av objekt. Det finns flera objekt i programvaran. Dessa objekt är anslutna till varandra och skickar meddelanden med hjälp av metoder. Varje objekt har egenskaper och beteenden. Egenskaperna beskrivs av egenskaperna eller attributen. Beteenden beskrivs med hjälp av metoder. Objektet Student kan ha egenskaper som namn, ålder och de representeras av fastigheter. Objektet Student kan ha beteenden som att studera och läsa, och de är representerade av metoder. En stor pelare av OOP är polymorfism. Det låter ett föremål uppträda på flera sätt. Tidigbindande och senbindning är två begrepp inom polymorfismen. Överbelastningsmetoder bindas med användning av tidig bindning. Överdrivna metoder bindas med användning av sen bindning.
1. Översikt och nyckelskillnad
2. Vad är tidigt bindande
3. Vad är senbindning
4. Likheter mellan tidig och sen bindning
5. Jämförelse vid sida vid sida - Tidig mot sen bindning i tabellform
6. Sammanfattning
I tidig bindning används klassinformationen för att lösa metodanrop. Tidig bindning sker vid kompileringstid. Det är också känt som den statiska bindningen. I denna process sker bindningen innan programmet körs. Överbelastningsmetoder bindas med användning av tidig bindning. Se nedan programmet.
Figur 01: Beräkningsklass
Figur 02: Huvudprogram för tidig bindning
Enligt ovanstående program innehåller beräkningsklassen en tilläggsmetod som accepterar två heltalvärden och en annan tilläggsmetod som accepterar två dubbelvärden. I huvudprogrammet skapas ett objekt av typen Beräkning. När två heltal överförs till add-metoden, kommer den att påberopa add-metoden som accepterar två heltal. När två dubbelvärden överförs till add-metoden, kommer den att anropa metoden som motsvarar två dubbelvärden. Denna bindningsprocess sker vid sammanställningstiden. All nödvändig information är känd före körning, så det ökar programmets effektivitet och körhastighet.
Vid sen bindning används objektet för att lösa metodanrop. Senbindning sker vid körning. Det är också känt som dynamisk bindning. I denna process sker bindningen vid programexekvering. Överdrivna metoder bindas med användning av sen bindning. Se nedan programmet.
Figur 03: Formklass
Figur 04: Cirkelklass
Figur 05: Triangelklass
Figur 06: Huvudprogram för senbindning
Enligt ovanstående program har klassformen en teckningsmetod. Class Circle och Class Triangle-klassen utökar Shape-klassen. Därför kan dessa två klasser erva egenskaper och metoder i Form-klassen. Shape Class är basklassen. Cirkel och Triangel klasser är härledda klasser. Klassen Cirkel och klass Triangle har också teckningsmetoden med sina egna implementeringar. Så överträder dragningsmetoden i Shape-klassen av de härledda klassernas dragningsmetoder.
I huvudprogrammet skapas en referensvariabel s av typen Shape. Vid kompileringstid kommer kompilatorn endast att referera till basklassdragningsmetoden. Vid körning kommer olika dragmetoder att utföras. Först kommer s att peka på objektet av typen Shape. Så, drakmetoden för Shape-klassen åberopas. Sedan s s-punkten pekar på objektet av typen Circle, och det kommer att pådra sig rita-metoden för Circle-klassen. Slutligen s kommer att peka på objektet av typen Triangle, och det kommer att åberopa draw-metoden i Triangle-klassen. Metoderna kallas beroende på objekten. Därför används objektet för att lösa metoden som kallas senbindning. Den information som krävs för bindning tillhandahålls vid körning, så utföringshastigheten är långsammare jämfört med tidig bindning.
Tidig bindning vs senbindning | |
Processen att använda klassinformationen för att lösa metallsamtal som uppstår vid kompileringstid kallas Early Binding. | Processen att använda objektet för att lösa metallsamtal som uppträder vid körtiden kallas senbindning. |
Tid för bindning | |
Tidig bindning sker vid kompileringstid. | Senbindning sker vid körning. |
Funktionalitet | |
Tidig bindning använder klassinformationen för att lösa metodanrop. | Late Binding använder objektet för att lösa metodanrop. |
synonymer | |
Tidig bindning är också känd som statisk bindning ... | Senbindning är också känd som dynamisk bindning. |
Förekomst | |
Överbelastningsmetoder bindas med användning av tidig bindning. | Överdrivna metoder bindas med användning av sen bindning. |
Utförandehastighet | |
Utföringshastigheten är snabbare i tidig bindning. | Utföringshastigheten är lägre i sen bindning. |
OOP används vanligtvis för mjukvaruutveckling. En stor pelare av OOP är polymorfism. Tidigbindande och senbindning är relaterade till det. Tidig bindning sker vid kompileringstid medan senbindning sker vid körning. Vid överbelastning av metoden sker bindningen med hjälp av den tidiga bindningen. Vid metodöverstyrning sker bindningen med användning av den sena bindningen. Skillnaden mellan tidig och sen bindning är att tidig bindning använder klassinformationen för att lösa metoden som ringer medan senbindning använder objektet för att lösa metoden som ringer.
1.Java Intervju 04 - Statisk Bindning Vs Dynamisk Bindning, Mahika Tutorials, 27 december 2017. Tillgänglig här
2.Dynamic Method Dispatch i Java | Core Java Tutorial | Studytonight. Tillgänglig här