Wie verwende ich dynamische Bindung in Java?

Wie Verwende Ich Dynamische Bindung In Java



Der ' Dynamische Bindung ” ermöglicht polymorphes Verhalten, bei dem der Methodenaufruf eines Objekts zur Laufzeit basierend auf dem tatsächlichen Typ des Objekts und nicht auf dem Referenztyp bestimmt wird. Es fördert die Wiederverwendbarkeit von Code, indem es Unterklassen ermöglicht, in der übergeordneten Klasse definierte Methoden zu überschreiben und ihre Implementierung bereitzustellen.

Dieser Blog demonstriert die Verwendung und Implementierung der dynamischen Bindung in Java.

Wie verwende ich dynamische Bindung in Java?

Dynamische Bindung ermöglicht eine lose Kopplung zwischen Objekten. Es hilft bei der einfachen Erweiterung der Funktionalität durch das Hinzufügen neuer Unterklassen, die Methoden überschreiben, ohne den vorhandenen Code zu ändern. Dynamische Bindung wird häufig für Laufzeit-Dispatching, Ereignisverarbeitung oder Plugin-Systeme verwendet.







Lassen Sie uns für eine detaillierte Erklärung einige Beispiele durchgehen:



Beispiel 1: Dynamische Bindung implementieren



Durch die Verwendung dynamischer Bindung können Programmierer Benutzern ermöglichen, Standardverhalten anzupassen und zu überschreiben, um anpassbare Anwendungen zu erstellen. Zur praktischen Umsetzung gehen wir ein Beispiel durch:





java.util.Arrays importieren;
import java.util.HashSet;
java.util.List importieren;
import java.util.Set;

öffentliche Klasse DynBind {
Public static void Main ( Zeichenfolge [ ] args ) {
Gaming gameType1 = neues Cricket ( ) ;
Gaming gameType2 = neues CallofDuty ( ) ;
gameType1.gameType ( ) ;
gameType2.gameType ( ) ;
}
}
Klasse Gaming {
public void gameType ( ) {
System.out.println ( „Physische oder virtuelle Spiele“ ) ;
}
}
Klasse Cricket erweitert Gaming {
@ Überschreiben
public void gameType ( ) {
System.out.println ( „Cricket ist ein körperliches Spiel“ ) ;
}
}
Klasse CallofDuty erweitert Gaming {
@ Überschreiben
public void gameType ( ) {
System.out.println ( „CallofDuty ist ein virtuelles Spiel“ ) ;
}
}

Erklärung des obigen Codes:



  • Zuerst die Klasse „ DynBind ” wird erstellt und zwei Objekte vom Typ „ Spielen “ werden erklärt.
  • Als nächstes werden diese Objekte mit neuen „ Kricket ' Und ' Ruf der Pflicht ”-Objekten demonstriert diese Initialisierung die dynamische Bindung. Der Referenztyp ist „ Spielen ” aber die tatsächlichen Objekttypen sind „ Kricket ' Und ' Ruf der Pflicht ', bzw.
  • Nun werden diese Objekte verwendet, um das „ Spiel Typ() ” funktioniert durch Überschreiben der Funktion in untergeordneten Klassen.
  • Dann ist der Elternteil „ Spielen Es wird eine Klasse deklariert, die die Klasse „ erstellt und initialisiert. Spiel Typ() ”-Funktion, die eine Dummy-Textnachricht druckt.
  • Als nächstes werden zwei untergeordnete Klassen mit dem Namen „ Kricket ' Und ' Ruf der Pflicht “. Diese Klassen werden von der übergeordneten Klasse geerbt. Spielen ' Klasse.
  • Danach wird das „ @Override „Annotation wird verwendet, um das übergeordnete Element zu überschreiben“ Spielen „Klassenmethoden mit dem Namen“ Spiel Typ() “.
  • Am Ende wird in beiden überschriebenen Methoden der untergeordneten Klasse eine unterschiedliche Dummy-Nachricht angezeigt.

Nach Ende der Ausführungsphase:

Die Ausgabe zeigt, dass die Dummy-Nachrichten der untergeordneten Klassen mithilfe dynamischer Bindung auf der Konsole angezeigt werden.

Beispiel 2: Implementierung der mehrstufigen Vererbung

Für die Erstellung einer mehrstufigen Vererbung kann auch eine dynamische Bindung implementiert werden. Zwei Codeblöcke desselben Programms, wie unten gezeigt:

Klasse Gaming {
public void gameType ( ) {
System.out.println ( „Physische oder virtuelle Spiele“ ) ;
}
}
Klasse Cricket erweitert Gaming {
@ Überschreiben
public void gameType ( ) {
System.out.println ( „Cricket ist ein körperliches Spiel“ ) ;
}
public void playingFormat ( ) {
System.out.println ( „Cricket hat verschiedene Spielformate“ ) ;
}
}
Klasse CallofDuty erweitert Gaming {
@ Überschreiben
public void gameType ( ) {
System.out.println ( „CallofDuty ist ein virtuelles Spiel“ ) ;
}
public void gameMode ( ) {
System.out.println ( „CallofDuty hat mehrere Spielmodi“ ) ;
}
}
Die Klasse CricketGame erweitert Cricket {
public void gameMode ( ) {
System.out.println ( „Cricket hat einen Einzelspielmodus“ ) ;
}
}
Die Klasse CallofDutyGame erweitert CallofDuty {
}

Erklärung des obigen Codes:

  • Erstens, der Elternteil „ Spielen Die Klasse wird erstellt und enthält die Klasse „ Spiel Typ() ”-Funktion, die eine Dummy-Nachricht enthält.
  • Als nächstes zwei untergeordnete Klassen mit dem Namen „ Kricket ' Und ' Ruf der Pflicht ” werden erstellt, wobei beide die übergeordnete Klassenfunktion mit dem Namen „ überschreiben Spiel Typ() “.
  • Diese Klassen enthalten eine zusätzliche Funktion namens „ playingFormat() ' Und ' Spielmodus() ”-Funktionen bzw.
  • Erstellen Sie dann ein mehrstufiges untergeordnetes Element mit dem Namen „ CricketGame „das vom Kind erweitert wird“ Kricket ' Klasse. Es enthält die „ Spielmodus() „Funktion, die von ihrem übergeordneten Element überschrieben wird“ Kricket ' Klasse.
  • Danach wird das „ CallofDutyGame Die Klasse „wird als Kind für die Klasse „“ erstellt. Ruf der Pflicht ' Klasse. Es erstellt eine mehrstufige Vererbung und ermöglicht die Funktionalität der dynamischen Bindung.

Fügen Sie nun das „ hauptsächlich() ' Methode:

öffentliche Klasse DynBind {
Public static void Main ( Zeichenfolge [ ] args ) {
CallofDutyGame codg = neues CallofDutyGame ( ) ;
codg.gameType ( ) ;
codg.gameMode ( ) ;

CricketGame cricg = neues CricketGame ( ) ;
cricg.gameType ( ) ;
cricg.playingFormat ( ) ;
cricg.gameMode ( ) ;
}
}

Erklärung des obigen Codes:

  • Zunächst ein Objekt der „ CallofDutyGame Es wird eine Klasse erstellt, die die Funktionen ihrer übergeordneten Klassen aufruft.
  • In gleicher Weise ist das „ CricketGame Es wird ein Objekt deklariert, das seine übergeordnete Klassenfunktion aufruft, die auf mehreren Ebenen in der Hierarchie verfügbar ist.

Nach Ende der Ausführungsphase:

Die Ausgabe zeigt, dass die mehrstufige Vererbung mithilfe der dynamischen Bindung in Java erstellt wird.

Abschluss

In Java ist das „ Dynamische Bindung ” bietet Vorteile wie Polymorphismus, Wiederverwendbarkeit des Codes, Flexibilität und Erweiterbarkeit. Die Implementierung erfolgt durch Befolgen der Vererbungs-, Methodenüberschreibungs- und Upcasting-Regeln. Dynamische Bindung ermöglicht auch Laufzeitfunktionen und verbessert das flexible und polymorphe Verhalten im OOPs-Konzept. Hier dreht sich alles um die Verwendung und Implementierung der dynamischen Bindung in Java.