Tidlig binding og senbinding er to begreber relateret til polymorfisme. Den tidlige binding forekommer på kompileringstidspunktet, mens den sene binding indtræder ved kørselstid. Det vigtigste forskel mellem tidlig og for sen binding er det Tidlig binding bruger klassinformationen til at løse metodekald, mens Late Binding bruger objektet til at løse metodekald.
Programmeringssprog som Java understøtter Objektorienteret programmering (OOP). Det er et paradigme, der tillader konstruktion af programmet eller softwaren ved hjælp af objekter. Der er flere objekter i softwaren. Disse objekter er forbundet til hinanden og videresender beskeder ved hjælp af metoder. Hvert objekt har karakteristika og adfærd. Egenskaberne er beskrevet af egenskaber eller attributter. Opførslen er beskrevet ved hjælp af metoder. Objektet Student kan have karakteristika som navn, alder og de er repræsenteret ved egenskaber. Objektet Student kan have adfærd som undersøgelse og læse, og de er repræsenteret ved metoder. En vigtig søjle i OOP er polymorfisme. Det giver et objekt mulighed for at opføre sig på flere måder. Tidlig binding og senbinding er to begreber inden for polymorfisme. Overbelastningsmetoder er bundet ved hjælp af tidlig binding. Overordnede metoder er bundet ved hjælp af sen binding.
1. Oversigt og nøgleforskel
2. Hvad er tidlig binding
3. Hvad er senbinding
4. Ligheder mellem tidlig og sen binding
5. Sammenligning side ved side - Tidlig vs senbinding i tabelform
6. Resume
I tidlig binding bruges klassinformationen til at løse metodekald. Tidlig binding sker på kompileringstidspunktet. Det er også kendt som den statiske binding. I denne proces forekommer bindingen, før programmet faktisk kører. Overbelastningsmetoder er bundet ved hjælp af tidlig binding. Se nedenstående program.
Figur 01: Beregningsklasse
Figur 02: Hovedprogram til tidlig binding
I henhold til ovenstående program indeholder beregningsklassen en tilføjelsesmetode, der accepterer to heltalværdier og en anden tilføjelsesmetode, der accepterer to dobbeltværdier. I hovedprogrammet oprettes et objekt af typen Beregning. Når du sender to heltal til tilføjelsesmetoden, påkalder den tilføjelsesmetoden, der accepterer to heltal. Når du overfører to dobbeltværdier til tilføjelsesmetoden, påkalder den metoden, der svarer til to dobbeltværdier. Denne bindingsproces forekommer på kompileringstidspunktet. Al nødvendig information er kendt inden runtime, så det øger programeffektiviteten og eksekveringshastigheden.
I Late Binding bruges objektet til at løse metodekald. Sen binding opstår under kørsel. Det er også kendt som dynamisk binding. I denne proces forekommer bindingen ved programudførelse. Overordnede metoder er bundet ved hjælp af sen binding. Se nedenstående program.
Figur 03: Formklasse
Figur 04: Cirkelklasse
Figur 05: Trekantklasse
Figur 06: Hovedprogram for senbinding
I henhold til ovenstående program har klasse Shape en trækmetode. Klasse cirkel og klasse trekant klasse udvider form klassen. Derfor kan disse to klasser arve attributterne og metoderne for formklassen. Shape Class er baseklassen. Cirkel- og trekantklasser er afledte klasser. Klassen Circle og class Triangle har også tegnemetoden med deres egne implementeringer. Så trækmetoden i formklasse tilsidesættes af trækmetoderne for de afledte klasser.
I hovedprogrammet oprettes en referencevariabel s af typen Form. På kompileringstidspunktet refererer compileren kun til basisklasse-trækmetoden. Ved kørsel udføres forskellige trækmetoder. Først peger s på objektet af typen form. Så trækmetoden i formklassen påberåbes. Derefter peger s på objektet af typen Circle, og det påkalder tegnemetoden i cirkelklassen. Endelig peger s på objektet af typen trekant, og det påkalder trækmetoden i trekantklassen. Metoderne kaldes afhængigt af objekterne. Derfor bruges objektet til at løse metodeopkald i senbinding. De oplysninger, der kræves til binding, gives på kørselstidspunktet, så hastigheden af udførelsen er langsommere sammenlignet med den tidlige binding.
Tidlig binding vs sen binding | |
Processen med at bruge klasseinformationen til at løse metodekald, der opstår på kompileringstidspunktet kaldes Early Binding. | Processen med at bruge objektet til at løse metodekald, der forekommer ved kørsel, kaldes den sene binding. |
Bindelsestid | |
Tidlig binding sker på kompileringstidspunktet. | Sen binding sker på kørselstidspunktet. |
Funktionalitet | |
Tidlig binding bruger klasseinformationen til at løse metodekald. | Late Binding bruger objektet til at løse metodekald. |
Synonymer | |
Tidlig binding er også kendt som statisk binding ... | Sen binding er også kendt som dynamisk binding. |
Hændelse | |
Overbelastningsmetoder er bundet ved hjælp af tidlig binding. | Overordnede metoder er bundet ved hjælp af sen binding. |
Udførelseshastighed | |
Udførelseshastighed er hurtigere ved tidlig binding. | Udførelseshastighed er lavere ved sen binding. |
OOP bruges ofte til softwareudvikling. En vigtig søjle i OOP er polymorfisme. Tidlig binding og sen binding er relateret til det. Tidlig binding forekommer på kompileringstidspunktet, mens senbinding sker ved kørselstid. Ved overbelastning af metoden sker bindingen ved hjælp af den tidlige binding. Ved metodeoverskridelse sker limningen ved hjælp af den sene binding. Forskellen mellem tidlig og sent binding er, at tidlig binding bruger klassinformationen til at løse metodekald, mens Late Binding bruger objektet til at løse metodekald.
1.Java Interview 04 - Statisk binding Vs Dynamic Binding, Mahika Tutorials, 27. december 2017. Findes her
2.Dynamisk metodeforsendelse i Java | Core Java-tutorial | Studytonight. Findes her