Belangrijk verschil - Vroege vs. late binding
Early Binding en Late Binding zijn twee concepten die verband houden met polymorfisme. De Early Binding vindt plaats tijdens het compileren, terwijl de Late Binding tijdens runtime plaatsvindt. Het belangrijkste verschil tussen Early en Late Binding is dat Early Binding de klasse-informatie gebruikt om methodeaanroepen op te lossen, terwijl Late Binding het object gebruikt om methodeaanroepen op te lossen.
Programmeertalen zoals Java ondersteunen Object Oriented Programming (OOP). Het is een paradigma dat het mogelijk maakt om het programma of de software te construeren met behulp van objecten. Er zijn meerdere objecten in de software. Deze objecten zijn met elkaar verbonden en geven via methodes berichten door. Elk object heeft kenmerken en gedragingen. De kenmerken worden beschreven door de eigenschappen of attributen. De gedragingen worden beschreven met behulp van methoden. Het object Student kan kenmerken hebben zoals naam, leeftijd en worden weergegeven door eigenschappen. Het object Student kan gedrag vertonen zoals studeren en lezen, en ze worden weergegeven door methoden. Een belangrijke pijler van OOP is polymorfisme. Hiermee kan een object zich op meerdere manieren gedragen. Vroege binding en late binding zijn twee concepten in polymorfisme. Overbelastingsmethoden worden gebonden met behulp van vroege binding. Overschreven methoden worden verbonden met late binding.
Wat is vroege binding?
In Early Binding wordt de klasse-informatie gebruikt om het aanroepen van methoden op te lossen. Early Binding vindt plaats tijdens het compileren. Het is ook bekend als de statische binding. In dit proces vindt de binding plaats voordat het programma daadwerkelijk wordt uitgevoerd. Overbelastingsmethoden worden gebonden met behulp van vroege binding. Raadpleeg het onderstaande programma.
Figuur 01: Berekeningsklasse
Figuur 02: Hoofdprogramma voor Early Binding
Volgens het bovenstaande programma bevat de Calculation-klasse een add-methode die twee gehele waarden accepteert en een andere add-methode die twee dubbele waarden accepteert. In het hoofdprogramma wordt een object van het type Berekening gemaakt. Wanneer twee gehele getallen worden doorgegeven aan de add-methode, wordt de add-methode aangeroepen die twee gehele getallen accepteert. Wanneer twee dubbele waarden worden doorgegeven aan de methode optellen, wordt de methode aangeroepen die overeenkomt met twee dubbele waarden. Dit bindingsproces vindt plaats tijdens het compileren. Alle vereiste informatie is vóór runtime bekend, dus het verhoogt de programma-efficiëntie en uitvoeringssnelheid.
Wat is late binding?
In Late Binding wordt het object gebruikt om methodeaanroepen op te lossen. Late binding vindt plaats tijdens runtime. Het is ook bekend als dynamische binding. In dit proces vindt de binding plaats bij de uitvoering van het programma. Overschreven methoden worden gebonden met behulp van late binding. Raadpleeg het onderstaande programma.
Figuur 03: Vormklasse
Figuur 04: Cirkelklasse
Figuur 05: Driehoeksklasse
Figuur 06: Hoofdprogramma voor Late Binding
Volgens het bovenstaande programma heeft de klasse Vorm een tekenmethode. Class Circle en class Triangle-klasse breidt de Shape-klasse uit. Daarom kunnen deze twee klassen de attributen en methoden van de klasse Shape erven. Shape Class is de basisklasse. Circle- en Triangle-klassen zijn afgeleide klassen. De klasse Cirkel en klasse Driehoek hebben ook de tekenmethode met hun eigen implementaties. De tekenmethode in de klasse Shape wordt dus overschreven door de tekenmethoden van de afgeleide klassen.
In het hoofdprogramma wordt een referentievariabele s van het type Shape gemaakt. Tijdens het compileren verwijst de compiler alleen naar de tekenmethode van de basisklasse. Tijdens runtime worden verschillende tekenmethoden uitgevoerd. Eerst wijst s naar het object van het type Vorm. Dus de tekenmethode van de klasse Shape wordt aangeroepen. De s wijst dan naar het object van het type Circle en roept de tekenmethode van de klasse Circle op. Ten slotte wijst s naar het object van het type Triangle en roept het de tekenmethode op in de klasse Triangle. De methoden worden aangeroepen afhankelijk van de objecten. Daarom wordt het object gebruikt om methodeaanroepen in Late Binding op te lossen. De informatie die nodig is voor binding wordt tijdens runtime geleverd, dus de uitvoeringssnelheid is langzamer in vergelijking met vroege binding.
Wat is de overeenkomst tussen vroege binding en late binding?
Zowel Early Binding als Late Binding zijn gerelateerd aan polymorfisme dat een pijler is van OOP
Wat is het verschil tussen vroege binding en late binding?
Vroegbinding versus late binding |
|
Het proces waarbij de klasse-informatie wordt gebruikt om methodeaanroepen op te lossen die tijdens het compileren plaatsvinden, wordt Early Binding genoemd. | Het proces waarbij het object wordt gebruikt om methodeaanroepen op te lossen die tijdens runtime plaatsvinden, wordt de Late Binding genoemd. |
Tijdstip van binding | |
Early Binding gebeurt tijdens het compileren. | Late Binding gebeurt tijdens runtime. |
Functionaliteit | |
Early Binding gebruikt de klasse-informatie om methodeaanroepen op te lossen. | Late Binding gebruikt het object om methodeaanroepen op te lossen. |
Synoniemen | |
Early Binding is ook bekend als statische binding.. | Late Binding is ook bekend als dynamische binding. |
Voorkomen | |
Overbelastingsmethoden worden verbonden met vroege binding. | Overschreven methoden worden verbonden met late binding. |
Uitvoeringssnelheid | |
De uitvoeringssnelheid is hoger bij vroege binding. | De uitvoeringssnelheid is lager bij late binding. |
Samenvatting – Vroege vs. late binding
OOP wordt vaak gebruikt voor softwareontwikkeling. Een belangrijke pijler van OOP is polymorfisme. Early Binding en Late Binding zijn daaraan gerelateerd. Early Binding vindt plaats tijdens het compileren, terwijl Late Binding tijdens runtime plaatsvindt. Bij overbelasting van de methode vindt de binding plaats met behulp van de vroege binding. Bij het overschrijven van de methode vindt de binding plaats met behulp van de late binding. Het verschil tussen Early Binding en Late Binding is dat Early Binding de klasse-informatie gebruikt om methodeaanroep op te lossen, terwijl Late Binding het object gebruikt om methodeaanroep op te lossen.