In object oriented programming, dynamic binding means determining the exact implementation of a request based on both the request (operation) name and the receiving object at the run-time. It often happens when invoking a derived class's member function using a pointer to its super class. The implementation of the derived class will be invoked instead of that of the super class. It allows substituting a particular implementation using the same interface and enables polymorphism.

PropertyValue
dbpprop:abstract
  • In object oriented programming, dynamic binding means determining the exact implementation of a request based on both the request (operation) name and the receiving object at the run-time. It often happens when invoking a derived class's member function using a pointer to its super class. The implementation of the derived class will be invoked instead of that of the super class. It allows substituting a particular implementation using the same interface and enables polymorphism.
  • In der Informatik, speziell der objektorientierten Programmierung, ist die Dynamische Bindung (engl. dynamic binding/dynamic dispatch) ein Begriff, der den Umgang des Compilers mit polymorphen Methoden beschreibt. Man spricht von dynamischer Bindung, wenn ein Methodenaufruf zur Laufzeit anhand des tatsächlichen (dynamischen) Typs eines Objektes aufgelöst wird.
  • Myöhäinen sidonta tarkoittaa muuttujan tyypin päättelemistä vasta suoritusvaiheessa. Usein tämä liittyy olio-ohjelmointiin ja perintään, mutta sitä käytetään myös ohjelmointikielissä, jotka eivät varsinaisesti tue perintää. Esimerkiksi Visual Basic 6:ssa voidaan muuttujan tyypiksi määritellä Variant, jolloin siihen voi sijoittaa minkä tahansa tyypin. Vasta suoritusvaiheessa tarkistetaan, että muuttujaan sijoitettua tyyppiä käytetään oikein, esimerkiksi tarkistetaan, että muuttujalta löytyvät ohjelmassa käytetyt ominaisuudet. Jos ohjelmointikieli tukee perintää, myöhäisen sidonnan käyttökelpoisuus on helpommin ymmärrettävissä. Jos vaikka oletetaan toteutettavaksi yksinkertainen shakkipeliä mallintava ohjelma, voidaan määritellä luokka ShakkiNappula, jolla on muiden muassa metodit, jotka palauttavat nappulan sijainnin ja mahdolliset ruudut, johon nappula voisi kyseisestä sijainnista siirtyä. Pelin erilaiset nappulat periytyisivät ShakkiNappula-luokasta ja niitä olisivat esimerkiksi Torni, Lähetti, Kuningas jne. Nappulan sijainti on kaikilla nappuloilla se ruutu, jolla nappula on. Sen palauttava metodi siis voitaisiin totetuttaa kaikille nappulatyypeille samalla tavoin. Tällöin sen luontevin paikka olisi luokassa ShakkiNappula, jolloin luokan perilliset saisivat metodin käyttöön automaattisesti. Eri nappulatyypit liikkuvat hyvin eri tavoin. Jos mahdolliset siirrot palauttava metodi tehtäisiin luokkaan ShakkiNappula, metodista tulisi melko pitkä. Luultavasti siinä olisi useita ehtolauseita, yksi kullekin nappulatyypille ja kussakin haarassa käsiteltäisiin kyseisen nappulatyypin mahdolliset siirrot. Myöhäisen sidonnan ansiosta metodi voidaan kuitenkin toteuttaa siten, että ShakkiNappula -luokassa vain kerrotaan siirrot palauttavan metodin olevan olemassa ja kukin nappulatyyppi antaa metodille oman toteutuksensa. Torni-luokassa metodi siis palauttaa mahdolliset ruudut vaaka- ja pystyriveiltä, Lähetti-luokassa metodi puolestaan palauttaa mahdolliset ruudut vinoriveiltä jne. Kunkin nappulatyypin metodi on varsin lyhyt eikä siinä tarvitse välittää muiden nappulatyyppien mahdollisista siirroista. Jos pelilaudan nappulat sijoitetaan taulukkoon, jonka alkiot ovat tyyppiä ShakkiNappula, voidaan taulukko käydä läpi ja tulostaa kullekin nappulalle sen sijainti ja mahdolliset siirrot. Sijainnin tulostamiseen käytetään ShakkiNappula-luokassa olevaa metodia. Myöhäinen sidonta aiheuttaa sen, että kun taulukon alkiolta kysytään sen mahdollisia siirtoja, vasta metodin kutsuvaiheessa päätetään, minkä luokan metodia käytetään. Kuningas-luokan oliolle käytetään siis sen luokan omaa metodia, Torni-luokan olioille omaansa, vaikka molempien luokkien oliot ovat sijoitettu ShakkiNappula-tyyppiseen taulukkoon.
  • Na programação orientada a objetos, ligação dinâmica significa determinar a exata implementação de uma requisição com base no nome da requisição (operação) e no objeto que executa a operação no tempo de execução. Geralmente acontece quando uma função membro de uma classe derivada é invocada usando um ponteiro para sua classe base. A implementação de uma classe derivada será invocada ao invés da operação da classe base. Isto permite a substituição de uma implementação particular usando a mesma interface, o que por sua vez habilita o uso de polimorfismo.
rdfs:comment
  • In object oriented programming, dynamic binding means determining the exact implementation of a request based on both the request (operation) name and the receiving object at the run-time. It often happens when invoking a derived class's member function using a pointer to its super class. The implementation of the derived class will be invoked instead of that of the super class. It allows substituting a particular implementation using the same interface and enables polymorphism.
  • In der Informatik, speziell der objektorientierten Programmierung, ist die Dynamische Bindung (engl. dynamic binding/dynamic dispatch) ein Begriff, der den Umgang des Compilers mit polymorphen Methoden beschreibt. Man spricht von dynamischer Bindung, wenn ein Methodenaufruf zur Laufzeit anhand des tatsächlichen (dynamischen) Typs eines Objektes aufgelöst wird.
  • Myöhäinen sidonta tarkoittaa muuttujan tyypin päättelemistä vasta suoritusvaiheessa. Usein tämä liittyy olio-ohjelmointiin ja perintään, mutta sitä käytetään myös ohjelmointikielissä, jotka eivät varsinaisesti tue perintää. Esimerkiksi Visual Basic 6:ssa voidaan muuttujan tyypiksi määritellä Variant, jolloin siihen voi sijoittaa minkä tahansa tyypin.
  • Na programação orientada a objetos, ligação dinâmica significa determinar a exata implementação de uma requisição com base no nome da requisição (operação) e no objeto que executa a operação no tempo de execução. Geralmente acontece quando uma função membro de uma classe derivada é invocada usando um ponteiro para sua classe base. A implementação de uma classe derivada será invocada ao invés da operação da classe base.
rdfs:label
  • Dynamic binding (computer science)
  • Dynamische Bindung
  • Myöhäinen sidonta
  • Ligação dinâmica
skos:subject
foaf:page
is dbpprop:redirect of