nyckelskillnad – tidig vs sen bindning
Tidlig bindning och sen bindning är två begrepp relaterade till polymorfism. Den tidiga bindningen sker vid kompileringstid medan den sena bindningen sker vid körning. Den viktigaste skillnaden mellan Early och Late Binding är att Early Binding använder klassinformationen för att lösa metodanrop medan Late Binding använder objektet för att lösa metodanrop.
Programmeringsspråk som Java stöder Object Oriented Programming (OOP). Det är ett paradigm som gör det möjligt att konstruera programmet eller programvaran med hjälp av objekt. Det finns flera objekt i programvaran. Dessa objekt är kopplade till varandra och skickar meddelanden med metoder. Varje föremål har egenskaper och beteenden. Egenskaperna beskrivs av egenskaperna eller attributen. Beteendena beskrivs med metoder. Objektet Student kan ha egenskaper som namn, ålder och de representeras av egenskaper. Objektet Student kan ha beteenden som att studera och läsa, och de representeras av metoder. En viktig pelare i OOP är polymorfism. Det tillåter ett objekt att bete sig på flera sätt. Tidig bindning och sen bindning är två begrepp inom polymorfism. Överbelastningsmetoder binds med tidig bindning. Åsidosatta metoder binds med sen bindning.
Vad är tidig bindning?
I Early Binding används klassinformationen för att lösa metodanrop. Tidig bindning sker vid kompileringstillfället. Det är också känt som den statiska bindningen. I denna process sker bindningen innan programmet faktiskt körs. Överbelastningsmetoder binds med tidig bindning. Se programmet nedan.
Figur 01: Beräkningsklass
Figur 02: Huvudprogram för tidig bindning
Enligt programmet ovan innehåller klassen Calculation en add-metod som accepterar två heltalsvärden och en annan add-metod som accepterar två dubbla värden. I huvudprogrammet skapas ett objekt av typen Beräkning. När två heltal skickas till add-metoden kommer den att anropa add-metoden som accepterar två heltal. När två dubbla värden skickas till add-metoden kommer den att anropa metoden som motsvarar två dubbla värden. Denna bindningsprocess sker vid kompilering. All nödvändig information är känd före körning, så det ökar programmets effektivitet och exekveringshastighet.
Vad är sen bindning?
I Late Binding används objektet för att lösa metodanrop. Sen bindning sker vid körning. Det är också känt som dynamisk bindning. I denna process sker bindningen vid programexekvering. Åsidosatta metoder binds med sen bindning. Se programmet nedan.
Figur 03: Shape Class
Figur 04: Cirkelklass
Figur 05: Triangel Class
Figur 06: Huvudprogram för sen bindning
Enligt programmet ovan har klassen Shape en ritmetod. Class Circle och class Triangle class utökar Shape-klassen. Därför kan dessa två klasser ärva Shape-klassens attribut och metoder. Shape Class är basklassen. Cirkel- och triangelklasser är härledda klasser. Klassen Cirkel och klasstriangeln har också ritmetoden med egna implementeringar. Så, ritmetoden i Shape-klassen åsidosätts av ritmetoderna för de härledda klasserna.
I huvudprogrammet skapas en referensvariabel s av typen Shape. Vid kompilering kommer kompilatorn endast att hänvisa till basklassritningsmetoden. Under körning kommer olika ritmetoder att köras. Först kommer s att peka på objektet av typen Shape. Så, ritmetoden för Shape-klassen anropas. Sedan kommer s:et att peka på objektet av typen Circle, och det kommer att anropa ritmetoden för Circle-klassen. Slutligen kommer s att peka på objektet av typen Triangle, och det kommer att anropa ritmetoden i klassen Triangle. Metoderna kallas beroende på objekten. Därför används objektet för att lösa metodanrop i Late Binding. Informationen som krävs för bindning tillhandahålls vid körning, så körningshastigheten är långsammare jämfört med tidig bindning.
Vad är likheten mellan tidig bindning och sen bindning?
Både tidig bindning och sen bindning är relaterade till polymorfism som är en pelare i OOP
Vad är skillnaden mellan tidig bindning och sen bindning?
Tidig bindning vs sen bindning |
|
Processen att använda klassinformationen för att lösa metodanrop som sker vid kompilering kallas Early Binding. | Processen att använda objektet för att lösa metodanrop som sker under körning kallas Late Binding. |
Tid för bindning | |
Tidig bindning sker vid kompilering. | Sen bindning sker under körning. |
Functionality | |
Early Binding använder klassinformationen för att lösa metodanrop. | Sen bindning använder objektet för att lösa metodanrop. |
Synonymer | |
Tidlig bindning är också känd som statisk bindning.. | Sen bindning kallas även dynamisk bindning. |
Förekomst | |
Överbelastningsmetoder är bundna med tidig bindning. | Åsidosatta metoder binds med sen bindning. |
Utförandehastighet | |
Utförandehastigheten är snabbare vid tidig bindning. | Utförandehastigheten är lägre vid sen bindning. |
Sammanfattning – tidig vs sen bindning
OOP används ofta för mjukvaruutveckling. En huvudpelare i OOP är polymorfism. Tidig bindning och sen bindning är relaterade till det. Tidig bindning sker vid kompilering medan sen bindning sker vid körning. Vid metodöverbelastning sker bindningen med den tidiga bindningen. Vid överordnad metod sker bindningen med den sena bindningen. Skillnaden mellan Early och Late Binding är att Early Binding använder klassinformationen för att lösa metodanrop medan Late Binding använder objektet för att lösa metodanrop.