Heim >Java >javaLernprogramm >Wie erreicht Java Polymorphismus sowohl mit statischen als auch mit dynamischen Mechanismen?
Polymorphismus in Java: Ein umfassender Leitfaden
In der objektorientierten Programmierung ermöglicht der Polymorphismus, dass Objekte verschiedener Klassen als Objekte von a behandelt werden gemeinsame Oberklasse. Java unterstützt Polymorphismus durch zwei Hauptmechanismen: statischen Polymorphismus und dynamischen Polymorphismus.
Statischer Polymorphismus
Statischer Polymorphismus, auch Methodenüberladung genannt, tritt auf, wenn zwei oder mehr Methoden in Die gleiche Klasse hat den gleichen Namen, aber unterschiedliche Parameterlisten. Während der Kompilierung bestimmt der Compiler basierend auf der Anzahl und den Typen der übergebenen Argumente, welche Methode aufgerufen werden soll.
Beispiel:
<code class="java">class Calculation { void sum(int a, int b) {} void sum(int a, int b, int c) {} } // Main method Calculation obj = new Calculation(); obj.sum(10, 10, 10); // 30 obj.sum(20, 20); // 40</code>
In diesem Beispiel die Methode sum ist mit zwei verschiedenen Parameterlisten überladen. Wenn die Methode mit drei Argumenten aufgerufen wird, wählt der Compiler die Summenmethode mit drei Parametern. Wenn umgekehrt die Methode mit zwei Argumenten aufgerufen wird, wählt der Compiler die Summenmethode mit zwei Parametern.
Dynamischer Polymorphismus
Dynamischer Polymorphismus, auch als Methodenüberschreibung bekannt, Tritt auf, wenn zwei oder mehr Methoden in verschiedenen Klassen denselben Namen und dieselbe Signatur haben. Während der Laufzeit bestimmt die virtuelle Maschine basierend auf dem Laufzeittyp des Objekts, welche Methode aufgerufen werden soll.
Beispiel:
<code class="java">class Animal { public void move() {} } class Dog extends Animal { public void move() {} } // Main method Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal reference but Dog object a.move(); // "Animals can move" b.move(); // "Dogs can walk and run"</code>
In diesem Beispiel wird die Methode verschoben wird in der Dog-Klasse überschrieben. Wenn die Methode move für die Animal-Referenz a aufgerufen wird, wird die Animal-Implementierung von move aufgerufen. Wenn jedoch die Move-Methode für die Dog-Referenz b aufgerufen wird, wird die Dog-Implementierung von Move aufgerufen, was dynamischen Polymorphismus demonstriert.
Das obige ist der detaillierte Inhalt vonWie erreicht Java Polymorphismus sowohl mit statischen als auch mit dynamischen Mechanismen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!