Programmiersprachen wie Java und C# unterstützen die objektorientierte Programmierung (OOP). Es ermöglicht das Erstellen von Software mit Objekten. Es gibt viele Objekte in einem Softwaresystem oder einem Programm. Diese Objekte haben Attribute und Methoden. Attribute beschreiben die Eigenschaften. Methoden beschreiben die Aktionen, die vom Objekt ausgeführt werden können. Daten werden mit Methoden durch Objekte weitergeleitet. Die erforderlichen Werte werden über Methodenaufrufe mit Parametern gesendet. Die tatsächliche Methode -Implementierung liegt in der Methodendefinition. Es gibt einen Zusammenhang zwischen einer Methodenaufruf und einer Methodendefinition. Es ist als Bindung bekannt. Es gibt zwei Arten von Bindungen. Sie sind statische Bindung und dynamische Bindung. Der Schlüsselunterschied zwischen statischer Bindung und dynamischer Bindung ist das, Bei der statischen Bindung wird die Bindung zur Kompilierungszeit aufgelöst, während die dynamische Bindung zur Laufzeit aufgelöst wird, was die tatsächliche Ausführungszeit ist. In diesem Artikel wird der Unterschied zwischen diesen beiden Bindungsmechanismen erörtert.
1. Überblick und wichtiger Unterschied
2. Was ist statische Bindung
3. Was ist dynamische Bindung
4. Ähnlichkeiten zwischen statischer Bindung und dynamischer Bindung
5. Seite für Seitenvergleich - statische Bindung gegen dynamische Bindung in tabellarischer Form
6. Zusammenfassung
Die Bindung ist der Zusammenhang zwischen einem Methodenaufruf und Methodendefinitionen.
Abbildung 01: statische Bindung und dynamische Bindung
Siehe das unten stehende Programm in Java.
öffentliche Klasse A
public void method1 ()
System.aus.println ("method1");
public void method2 ()
System.aus.println ("method2");
public static void main (String [] args)
A obj = neu a ();
obj.Methode 1();
obj.Methode2 ();
Gemäß dem obigen Programm wird ein Objekt vom Typ A erstellt. Dann werden Method1 und Method2 aufgerufen. Das Erkennen, welche Methode für die Ausführung erfordern sollte, wird als Bindung bezeichnet. Aussage obj.Methode1 () ruft Methode1 () und OBJ auf.Methode2 () ruft Methode auf () auf. Dieser Link ist bindend.
Bei der statischen Bindung wird die Bindung zum Kompilierungszeit durch den Compiler aufgelöst. Es ist auch als bekannt als Frühe Bindung. Bindung erfolgt, bevor ein Programm tatsächlich ausgeführt wird. Statische Bindung tritt bei der Überlastung der Methode auf. Siehe das unten stehende Programm in Java.
public void Berechnung
public void sum (int x, int y)
System.aus.println („sum ist“, x+y);
public void sum (double x, double y)
System.aus.println („sum ist“, x+y);
public static void main (String [] args)
Berechnung cal = neue Berechnung ();
Cal.Summe (2,3);
Cal.Summe (5.1, 6.4);
Nach dem obigen Programm wird beim Übergeben der beiden Ganzzahlen die Methode mit zwei Ganzzahlen aufgerufen. Wenn Sie zwei Doppelwerte übergeben, wird die Methode, die zwei Doppelwerten entspricht. Dieser Bindungsprozess erfolgt zum Zeitpunkt der Zusammenstellung. Der Compiler weiß, dass er die Summenmethode mit zwei Ganzzahlwerten für Cal aufrufen sollte.Summe (2,3). Für Cal (5.1,6.4) wird die Summenmethode mit zwei Doppelwerten aufgerufen. Alle erforderlichen Informationen sind vor der Laufzeit bekannt. Daher erhöht sich die Programmeffizienz und Ausführungsgeschwindigkeit.
Bei der dynamischen Bindung löst der Compiler die Bindung zur Kompilierungszeit nicht auf. Bindung tritt zur Laufzeit auf. Es ist auch als bekannt als späte Bindung. Dynamische Bindung tritt bei der Überschreitung der Methode auf. Siehe Programm in Java, die geschrieben wurden.
öffentliche Klasse Shape ()
public void draw ()
System.aus.println ("Form zeichnen");
Public Class Circle () erweitert die Form
public void draw ()
System.aus.println ("Zeichnenkreis");
öffentliche Klasse Triangle () erweitert die Form
public void draw ()
System.aus.println ("Dreieck zeichnen");
öffentliche Klassen -Test
public static void main (String [] args)
Form S;
S = neuer Shape ();
S.ziehen();
S = neuer Circle ();
S.ziehen();
S = neues Triangle ();
S.ziehen();
Nach dem obigen Programm hat die Klassenform eine Methode () () (). Klassenkreis und Klassendreieck erweitern die Formklasse. Klassenkreis und Klassendreieck können die Attribute und Methoden der Klassenform erben. Daher ist Klassenform die Superklasse oder die Elternklasse. Klassenkreis und Klassendreieck sind Unterklassen oder abgeleitete Klassen. Diese Klassen haben auch eine Draw () -Methode mit ihren eigenen Implementierungen. Daher ist die Methode der DRAIL () in der Superklasse überschrieben.
In der Hauptmethode werden verschiedene Objekte aufgerufen. Es gibt eine Referenzvariable des Formtyps, dh s s. Anschließend ruft S die Methode nach der spezifischen Klasse auf. Zum Kompilierungszeit verweist der Compiler nur die Superklassen -Ziehmethode. Wenn die tatsächliche Ausführung beginnt, führt dies zur Ausführung verschiedener Ziehmethoden. Erstens zeigt S auf das Objekt der Typformform. Daher wird die Zeichnungsmethode in der Formklasse aufgerufen. Dann zeigen die S auf das Objekt des Typs des Typs und ruft die Draw -Methode der Kreisklasse auf. Schließlich bezieht sich S auf das Objekt des Typdreiecks und ruft die Draw -Methode in der Dreiecksklasse auf. Obwohl die Referenzvariable von Typform ist, hängt die Bindung vom Objekttyp ab. Dieses Konzept wird als dynamische Bindung bezeichnet. Die Informationen werden zur Laufzeit bereitgestellt, sodass die Ausführungsgeschwindigkeit im Vergleich zur statischen Bindung langsamer ist.
Statische Bindung gegen dynamische Bindung | |
Die statische Bindung ist die Art der Bindung, die alle erforderlichen Informationen sammelt, um während der Kompilierungszeit eine Funktion aufzurufen. | Dynamische Bindung ist die Art der Bindung, die alle erforderlichen Informationen sammelt, um während der Laufzeit eine Funktion aufzurufen. |
Zeit der Bindung | |
Statische Bindung tritt zur Kompilierungszeit auf. | Die dynamische Bindung tritt zur Laufzeit auf. |
Funktionalität | |
Statische Bindung verwendet Typinformationen zur Bindung. | Die dynamische Bindung verwendet Objekte, um sie aufzulösen, um zu binden. |
Tatsächliches Objekt | |
Die statische Bindung verwendet kein tatsächliches Objekt zur Bindung. | Dynamische Bindung verwenden das tatsächliche Objekt zur Bindung. |
Synonyme | |
Die statische Bindung wird auch als frühes Bindung bezeichnet. | Die dynamische Bindung ist auch als verspätete Bindung bekannt. |
Ausführung | |
Die Ausführungsgeschwindigkeit ist in der statischen Bindung schnell. | Die Ausführungsgeschwindigkeit ist gering in dynamischer Bindung. |
Beispiel | |
Statische Bindung wird bei der Überlastung der Methode verwendet. | Dynamische Bindung wird bei der Überschreitung der Methode verwendet. |
Es gibt einen Zusammenhang zwischen einer Methodenaufruf und einer Methodendefinition. Es ist als Bindung bekannt. Es gibt zwei Arten von Bindungen, die als statische Bindung und dynamische Bindung bezeichnet werden. Der Unterschied zwischen statischer Bindung und dynamischer Bindung besteht darin, dass bei der statischen Bindung die Bindung zur Kompilierungszeit aufgelöst wird, während die dynamische Bindung zur Laufzeit aufgelöst wird, was die tatsächliche Ausführungszeit ist. Da die erforderlichen Informationen vor der Laufzeit bereitgestellt werden, ist die statische Bindung im Vergleich zur dynamischen Bindung schnell in der Ausführung.
Sie können die PDF -Version dieses Artikels herunterladen und sie für Offline -Zwecke gemäß Citation Note verwenden. Bitte laden Sie die PDF -Version hier herunter: Unterschied zwischen statischer Bindung und dynamischer Bindung
1.Java -Interview 04 - statische Bindung gegen dynamische Bindung, Mahika -Tutorials, 27. Dezember. 2017. Hier verfügbar