Heim >Java >javaLernprogramm >Wie erreicht Java Polymorphismus sowohl mit statischen als auch mit dynamischen Mechanismen?

Wie erreicht Java Polymorphismus sowohl mit statischen als auch mit dynamischen Mechanismen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-30 01:12:28628Durchsuche

How Does Java Achieve Polymorphism with Both Static and Dynamic Mechanisms?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn