Waarom is dynamische binding belangrijk bij het implementeren van polymorfisme?
Waarom is dynamische binding belangrijk bij het implementeren van polymorfisme?

Video: Waarom is dynamische binding belangrijk bij het implementeren van polymorfisme?

Video: Waarom is dynamische binding belangrijk bij het implementeren van polymorfisme?
Video: Simple Explanation of Polymorphism and Dynamic Binding 2024, November
Anonim

Dynamische binding staat toe dat een lidfunctie-aanroep tijdens runtime wordt opgelost, volgens het runtimetype van een objectreferentie. Hierdoor kan elke door de gebruiker gedefinieerde klasse in een overervingshiërarchie een verschillende implementatie van een bepaalde functie.

Met dit in het achterhoofd, wat is polymorfisme om de rol te verklaren die dynamische binding speelt bij de implementatie van polymorfisme?

Dit is wat we statisch noemen verbindend : de verbindend van namen gebeuren tijdens het compileren (d.w.z. statisch). Zo'n mechanisme heet dynamische binding : de verbindend van namen naar een implementatie gebeurt tijdens runtime (d.w.z. dynamisch ). Dynamische binding is nodig voor objectgeoriënteerde programmeertalen om polymorfisme implementeren.

Evenzo, wat is het gebruik van dynamische binding? Statisch verbindend gebruikt Type (klasse in Java) informatie voor verbindend terwijl dynamische binding gebruikt object om op te lossen verbindend . Overbelaste methoden zijn gebonden met behulp van statische verbindend terwijl overschreven methoden zijn verbonden met behulp van dynamische binding tijdens runtime.

Vervolgens is de vraag, is dynamisch bindend polymorfisme?

Polymorfisme in Java heeft twee soorten: Compilatietijd polymorfisme (statisch verbindend ) en Runtime polymorfisme ( dynamische binding ). Een belangrijk voorbeeld van polymorfisme is hoe een bovenliggende klasse verwijst naar een onderliggend klasseobject. In feite is elk object dat aan meer dan één IS-A-relatie voldoet: polymorf in de natuur.

Hoe dynamische binding nuttig is in oeps?

Dynamische binding wordt bereikt met behulp van virtuele functies. De pointer van de basisklasse wijst naar het afgeleide klasseobject. En een functie wordt virtueel verklaard in de basisklasse, waarna de overeenkomende functie tijdens runtime wordt geïdentificeerd met behulp van virtuele tabelinvoer. Hoe worden elementen doorgegeven in een objectgericht programmeertaal ( OOP )?

Aanbevolen: