Hauptunterschied – frühe und späte Bindung
Early Binding und Late Binding sind zwei Konzepte, die mit Polymorphismus verwandt sind. Die frühe Bindung erfolgt zur Kompilierzeit, während die späte Bindung zur Laufzeit erfolgt. Der Hauptunterschied zwischen Early und Late Binding besteht darin, dass Early Binding die Klasseninformationen verwendet, um Methodenaufrufe aufzulösen, während Late Binding das Objekt verwendet, um Methodenaufrufe aufzulösen.
Programmiersprachen wie Java unterstützen die objektorientierte Programmierung (OOP). Es ist ein Paradigma, das es ermöglicht, das Programm oder die Software unter Verwendung von Objekten zu konstruieren. Es gibt mehrere Objekte in der Software. Diese Objekte sind miteinander verbunden und leiten Nachrichten über Methoden weiter. Jedes Objekt hat Eigenschaften und Verh altensweisen. Die Eigenschaften werden durch die Eigenschaften oder Attribute beschrieben. Die Verh altensweisen werden mit Methoden beschrieben. Das Objekt Student kann Merkmale wie Name, Alter haben und sie werden durch Eigenschaften repräsentiert. Das Objekt Student kann Verh altensweisen wie Lernen und Lesen haben, und sie werden durch Methoden dargestellt. Eine wichtige Säule von OOP ist Polymorphismus. Es ermöglicht einem Objekt, sich auf verschiedene Weise zu verh alten. Early Binding und Late Binding sind zwei Konzepte im Polymorphismus. Überladende Methoden werden durch frühes Binden verbunden. Überschriebene Methoden werden mit später Bindung gebunden.
Was ist frühe Bindung?
Bei Early Binding werden die Klasseninformationen verwendet, um Methodenaufrufe aufzulösen. Die frühe Bindung erfolgt zur Kompilierzeit. Sie wird auch als statische Bindung bezeichnet. Bei diesem Verfahren erfolgt die Bindung, bevor das Programm tatsächlich ausgeführt wird. Überladende Methoden werden durch frühes Binden verbunden. Siehe untenstehendes Programm.
Abbildung 01: Berechnungsklasse
Abbildung 02: Hauptprogramm für Early Binding
Gemäß obigem Programm enthält die Calculation-Klasse eine add-Methode, die zwei ganzzahlige Werte akzeptiert, und eine weitere add-Methode, die zwei doppelte Werte akzeptiert. Im Hauptprogramm wird ein Objekt vom Typ Berechnung angelegt. Wenn zwei ganze Zahlen an die add-Methode übergeben werden, wird die add-Methode aufgerufen, die zwei ganze Zahlen akzeptiert. Wenn zwei Double-Werte an die Add-Methode übergeben werden, wird die Methode aufgerufen, die zwei Double-Werten entspricht. Dieser Bindungsprozess findet zur Kompilierzeit statt. Alle erforderlichen Informationen sind vor der Laufzeit bekannt, was die Programmeffizienz und Ausführungsgeschwindigkeit erhöht.
Was ist Late Binding?
Bei Late Binding wird das Objekt verwendet, um Methodenaufrufe aufzulösen. Die späte Bindung erfolgt zur Laufzeit. Es wird auch als dynamische Bindung bezeichnet. Die Bindung erfolgt dabei bei der Programmausführung. Überschriebene Methoden werden mit später Bindung gebunden. Siehe untenstehendes Programm.
Abbildung 03: Formklasse
Abbildung 04: Kreisklasse
Abbildung 05: Dreiecksklasse
Abbildung 06: Hauptprogramm für Late Binding
Gemäß obigem Programm hat die Klasse Shape eine Draw-Methode. Die Klassen Circle und Triangle erweitern die Shape-Klasse. Daher können diese beiden Klassen die Attribute und Methoden der Shape-Klasse erben. Shape-Klasse ist die Basisklasse. Circle- und Triangle-Klassen sind abgeleitete Klassen. Die Klassen Circle und Triangle haben auch die draw-Methode mit eigenen Implementierungen. Die Draw-Methode in der Shape-Klasse wird also von den Draw-Methoden der abgeleiteten Klassen überschrieben.
Im Hauptprogramm wird eine Referenzvariable s vom Typ Shape angelegt. Zur Kompilierzeit verweist der Compiler nur auf die Draw-Methode der Basisklasse. Zur Laufzeit werden verschiedene Draw-Methoden ausgeführt. Zuerst zeigt s auf das Objekt vom Typ Shape. Also wird die Draw-Methode der Shape-Klasse aufgerufen. Dann zeigt das s auf das Objekt vom Typ Circle und ruft die Draw-Methode der Circle-Klasse auf. Schließlich zeigt s auf das Objekt vom Typ Triangle und ruft die Draw-Methode in der Triangle-Klasse auf. Die Methoden werden abhängig von den Objekten aufgerufen. Daher wird das Objekt verwendet, um Methodenaufrufe in Late Binding aufzulösen. Die für die Bindung erforderlichen Informationen werden zur Laufzeit bereitgestellt, sodass die Ausführungsgeschwindigkeit im Vergleich zur frühen Bindung langsamer ist.
Was ist die Ähnlichkeit zwischen Early Binding und Late Binding?
Sowohl Early Binding als auch Late Binding hängen mit Polymorphismus zusammen, der eine Säule von OOP ist
Was ist der Unterschied zwischen Early Binding und Late Binding?
Early Binding vs. Late Binding |
|
Der Prozess der Verwendung der Klasseninformationen zur Auflösung von Methodenaufrufen, die zur Kompilierzeit auftreten, wird als frühe Bindung bezeichnet. | Der Prozess der Verwendung des Objekts zum Auflösen von Methodenaufrufen, der zur Laufzeit auftritt, wird als Late Binding bezeichnet. |
Zeitpunkt der Bindung | |
Early Binding findet zur Kompilierzeit statt. | Late Binding erfolgt zur Laufzeit. |
Funktionalität | |
Early Binding verwendet die Klasseninformationen, um Methodenaufrufe aufzulösen. | Late Binding verwendet das Objekt, um Methodenaufrufe aufzulösen. |
Synonyme | |
Early Binding wird auch als statische Bindung bezeichnet.. | Late Binding wird auch als dynamische Bindung bezeichnet. |
Vorkommen | |
Überladungsmethoden werden durch frühe Bindung gebunden. | Überschriebene Methoden werden mit später Bindung gebunden. |
Ausführungsgeschwindigkeit | |
Die Ausführungsgeschwindigkeit ist bei der frühen Bindung höher. | Die Ausführungsgeschwindigkeit ist bei später Bindung geringer. |
Zusammenfassung – frühe vs. späte Bindung
OOP wird häufig für die Softwareentwicklung verwendet. Eine wichtige Säule von OOP ist der Polymorphismus. Early Binding und Late Binding hängen damit zusammen. Die frühe Bindung erfolgt zur Kompilierzeit, während die späte Bindung zur Laufzeit erfolgt. Beim Überladen von Methoden erfolgt die Bindung unter Verwendung der frühen Bindung. Beim Methodenüberschreiben erfolgt die Bindung unter Verwendung der späten Bindung. Der Unterschied zwischen Early und Late Binding besteht darin, dass Early Binding die Klasseninformationen verwendet, um Methodenaufrufe aufzulösen, während Late Binding das Objekt verwendet, um Methodenaufrufe aufzulösen.