Skillnaden mellan statisk och dynamisk bindning
![Java Interview 04 - Static Binding Vs Dynamic Binding](https://i.ytimg.com/vi/W6s7RZo06nA/hqdefault.jpg)
Innehåll
- Jämförelsediagram:
- Definitioner av statisk bindning
- Implementering av statisk bindning i C ++ med ett exempel på överbelastning
- Slutsats:
Bindning av associering av en "funktionsdefinition" till ett "funktionssamtal" eller en koppling av ett "värde" till en "variabel" kallas "bindande". Under sammanställningen ges varje "funktionsdefinition" en minnesadress; så snart funktionssamtal är gjort flyttar kontrollen av programkörningen till den minnesadressen och får funktionskoden lagrad på den platsen exekverad, detta är bindning av 'funktionssamtal' till 'funktionens definition'. Bindning kan klassificeras som "statisk bindning" och "dynamisk bindning".
Om det redan är känt före körning, vilken funktion kommer att åberopas eller vilket värde som tilldelas en variabel, är det en 'statisk bindning'. om det känner till vid körningstid kallas det 'dynamisk bindning'.
- Jämförelsediagram
- Definition
- Viktiga skillnader
- Slutsats
Jämförelsediagram:
Grund för jämförelse | Statisk bindning | Dynamisk bindning |
---|---|---|
Händelsehändelse | Händelser inträffar vid sammanställningstiden är "Statisk bindning". | Händelser som inträffar vid körning är "Dynamisk bindning". |
Information | All information som krävs för att ringa en funktion är känd vid sammanställningstidpunkten. | All information behöver ringa en funktion lär känna vid körning. |
Fördel | Effektivitet. | Flexibilitet. |
Tid | Snabb exekvering. | Långsam körning. |
alternativt namn | Tidig bindning. | Sen bindning. |
Exempel | Överbelastat funktionssamtal, överbelastade operatörer. | Virtuell funktion i C ++, åsidosatta metoder i java. |
Definitioner av statisk bindning
När kompilatorn bekräftar all information som krävs för att ringa en funktion eller alla värden på variablerna under kompileringstiden, kallas den "statisk bindning”. Eftersom all nödvändig information är känd före körning, ökar den programeffektiviteten och den ökar också hastigheten för genomförandet av ett program.
Statisk bindning gör ett program mycket effektivt, men det minskar programflexibiliteten, eftersom 'värden på variabeln' och 'funktionssamtal' är fördefinierade i programmet. Statisk bindning implementeras i ett program vid kodningstillfället.
Överbelastning av en funktion eller en operatör är exemplet på kompileringstid polymorfism, dvs statisk bindning.
Implementering av statisk bindning i C ++ med ett exempel på överbelastning
#inkludera Här ändras pekarens värde när programmet är i körning och pekarens värde avgör vilken klassens funktion som ska åberopas. Så här tillhandahålls informationen vid körning, det tar tid att binda data som bromsar exekveringen. Men vi drar slutsatsen att när vi har förkunskaper om värdena på variabel- och funktionssamtal tillämpar vi den statiska bindningen. Omvänt, i dynamisk bindning, tillhandahåller vi all information vid genomförandet.
Slutsats: