Einführung in die statische und dynamische Bindung

Dies sind zwei Bindungsarten. Bindung bezieht sich auf die Zuordnung des Methodenaufrufs zum Methodentext. Bei der statischen Bindung erfolgt die Abtretung und Erklärung zum Zeitpunkt der Erstellung. Sie haben mehrere Vor- und Nachteile. In Bezug auf die Leistung ist die statische Bindung besser als die dynamische Bindung der Methoden und Variablen. Statische Bindung wird auch als frühe Bindung bezeichnet. Wie wir alle wissen, geschieht das Binden von Methoden wie static, private & final während der Kompilierungszeit, während der Compiler für dynamische Bindungen nicht entscheidet, welche Methode aufgerufen wird.
Das folgende Beispiel ist ein besseres Beispiel zum Verständnis

Beispiel 1

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
static void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
static void start() (
System.out.println("Bike will start now..");
)
)

Im obigen Beispiel können wir sehen, wie die statische Bindung das Überladen der Klasse verhindern soll.

Das folgende Beispiel zeigt, wie die dynamische Bindung funktioniert. Hier überschreibt die untergeordnete Klassenmethode die übergeordnete Klasse

Beispiel # 2

public class StaticBindingExample (
public static void main(String args()) (
Vehicle veh = new MotorBike();
veh.start();
)
)
class Vehicle (
void start() (
System.out.println("vehicle will start now..");
)
)
class MotorBike extends Vehicle (
void start() (
System.out.println("Bike will start now..");
)
)

In diesem Beispiel ist statisch nicht in der Startmethode unter der übergeordneten und untergeordneten Klassenmethode vorhanden. Daher überschreibt eine Methode mit demselben Namen die übergeordnete Klassenmethode. Es passiert aus diesem Grund.

Im obigen Screenshot ist die Ausgabe des Programms angegeben.

Warum statische Bindung und dynamische Bindung?

  1. Die Programmierung muss mithilfe der statischen und dynamischen Bindung unterschiedliche Situationen bewältigen.
  2. Compile-Time-Binding wird als Early-Binding bezeichnet. Dies bedeutet, dass Dinge zum Zeitpunkt der Kompilierung (am Anfang) der Programmausführung deklariert werden müssen. Bei der dynamischen Bindung erfolgt die Bindung zur Laufzeit, die auch als späte Bindung bezeichnet wird.
  3. Als statisch, endgültig und privat definierte Methoden und Variablen beziehen sich auf die statische Bindung, während virtuelle Methoden, die zur Laufzeit gebunden werden, als dynamische Bindung bezeichnet werden.
  4. Überladen von Methoden / Operatoren Beim Überladen wird die statische Bindung verwendet, sodass dies eines der besten Beispiele ist, während beim Überschreiben die dynamische Bindung verwendet wird. Dies ist das beste Beispiel für die dynamische Bindung.
  5. In diesem Fall wird ein reales Objekt niemals verwendet, während ein reales Objekt in der dynamischen Bindung verwendet wird.

Beispiele

Im folgenden Beispiel können wir sehen, wie statische Bindung geschieht

Beispiel 1

// Implementierung der übergeordneten Klasse

class Colony(
//Static method to start the electricity of the Colony
public static void start electricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//Static method to start the electricity of Building
public static void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

In dem oben angegebenen Programm ist col die Referenzvariable der Typklasse Colony, die auf das Objekt der Klasse Colony verweist. col2 ist auch die Referenzvariable der Typklasse Colony, zeigt aber auf das Objekt der Klasse Building. Wenn die Kompilierung stattfindet, prüft der Bindungscompiler nie den Objekttyp, sondern nur den Typ der Referenzvariablen.

Im obigen Programm, z. B. col .startElectricity (), prüft der Compiler, ob die Methodendefinition start electricity () in der Klasse Colony vorhanden ist oder nicht, da col der Typ class Colony ist. Ähnlich wird für den Methodenaufruf col2.startElectricity () geprüft, ob die Methode start electricity () in der Klasse Colony vorhanden ist oder nicht, da col2 ebenfalls vom Typ class Colony ist. Es wird nicht geprüft, auf welches Objekt col, col2 zeigt. Diese Art der Bindung wird als statische Bindung bezeichnet.

Ausgabe:

Die oben angegebene Ausgabe des Programms zeigt, wie statische Member verwendet werden, um ein Überschreiben zu verhindern.

Beispiel # 2

Im folgenden Beispiel sehen Sie, wie die dynamische Bindung zur Laufzeit ausgeführt wird

// Implementierung der übergeordneten Klasse

class Colony(
//method to start the electricity of the Colony
void startElectricity()(
//printing the message here
System.out.println("Colony Electricity is On.");
)
)
//Child class implementation
class Building extends Colony(
//method to start the electricity of Building
void startElectricity()(
//printing the message here
System.out.println("Building Electricity is On.");
)
)
public class StaticBindingExample (
public static void main(String args()) (
//Creating object of the parent class type
Colony col = new Colony();
col.startElectricity();
//Creating object of the child class type
Colony col2 = new Building();
col2.startElectricity();
)
)

In dem oben angegebenen Programm ist alles das gleiche wie in einem statischen Beispielprogramm, aber in diesem Beispiel wird der Member der Methode "static" entfernt. Dabei wird die Methode des Hauptobjekts aufgerufen, auf das col.startElectricity () zeigt. Während des Aufrufs von col2.startElectricity () wird die Methode des Hauptobjekts aufgerufen, auf das col2 zeigt. Diese Art der Bindung wird als dynamische Bindung bezeichnet.

Ausgabe:

Vorteil

  1. Die Ausführung der statischen Bindung ist effizienter und schneller als die dynamische. Dieser Binding-Compiler weiß, dass diese Arten von Methoden nicht überschrieben werden können.
  2. In der statischen Bindung wird der Typ verwendet, während die dynamische Bindung Objekte für Bindungen verwendet.
  3. Einer der Hauptvorteile von Dynamic Binding ist die Flexibilität. Aufgrund der Flexibilität kann eine einzelne Funktion zur Laufzeit verschiedene Objekttypen verarbeiten.
  4. Bei der statischen Bindung bleiben alle Informationen, die vor der Kompilierungszeit benötigt wurden, während bei der dynamischen Bindung keine Informationen vor der Laufzeit verfügbar sind.
  5. Die statische Bindung kann unter Verwendung normaler Funktionen erfolgen, während die dynamische Bindung unter Verwendung der virtuellen Funktionen erreicht werden kann.

Fazit

Dies sind einige der wichtigsten Konzepte der objektorientierten Programmierung. Bindung bezieht sich auf die Ausführung des Codes. Dies geschieht zum Zeitpunkt der Kompilierung, während die dynamische Bindung zur Laufzeit erfolgt. Definition, Deklaration und Umfang der Deklaration, dies sind drei wichtige Säulen der statischen Bindung in der dynamischen Bindung, Name der Bindung und Lebensdauer der Bindungssachen.

Empfohlene Artikel

Dies ist eine Anleitung zur statischen und dynamischen Bindung. Hier diskutieren wir die Einführung, Verwendung und Vorteile. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. Arten von Web-Hosting
  2. Überladen und Überschreiben in Java
  3. AngularJS-Richtlinien
  4. Polymorphismus in Java
  5. Statische JavaScript-Methode | Arbeiten | Beispiele