Polymorphie

Aus FI-Wiki
Version vom 2. Juni 2025, 10:33 Uhr von Moettke (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Polymorphie in Java == Polymorphie bedeutet „Vielgestaltigkeit“ und ist eines der vier Grundprinzipien der objektorientierten Programmierung. In Java beschreibt es die Fähigkeit, dass eine Methode auf verschiedene Weise reagieren kann, je nachdem, welches Objekt sie aufruft. Polymorphie erhöht die Flexibilität, Wartbarkeit und Wiederverwendbarkeit des Codes. === Formen der Polymorphie === === 1. Laufzeitpolymorphie (dynamisch) === Erreicht d…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Polymorphie in Java

Polymorphie bedeutet „Vielgestaltigkeit“ und ist eines der vier Grundprinzipien der objektorientierten Programmierung. In Java beschreibt es die Fähigkeit, dass eine Methode auf verschiedene Weise reagieren kann, je nachdem, welches Objekt sie aufruft.

Polymorphie erhöht die Flexibilität, Wartbarkeit und Wiederverwendbarkeit des Codes.

Formen der Polymorphie

1. Laufzeitpolymorphie (dynamisch)

Erreicht durch Methodenüberschreibung (Overriding) in Unterklassen.

 class Tier { public void geraeusch() { System.out.println("Ein Tier macht ein Geräusch"); } }
class Hund extends Tier {
@Override
public void geraeusch() {
System.out.println("Wuff!");
}
}

class Katze extends Tier {
@Override
public void geraeusch() {
System.out.println("Miau!");
}
}

Aufruf über die Oberklasse:

 Tier t1 = new Hund(); Tier t2 = new Katze();
t1.geraeusch(); // Wuff!
t2.geraeusch(); // Miau!

Obwohl t1 und t2 den Typ Tier haben, wird die überschriebene Methode der jeweiligen Unterklasse aufgerufen.

2. Compile-Zeit-Polymorphie (statisch)

Erreicht durch Methodenüberladung (Overloading) – mehrere Methoden mit demselben Namen, aber unterschiedlichen Parameterlisten.

 public class Mathe {
cpp
Kopieren
Bearbeiten
public int addiere(int a, int b) {
    return a + b;
}

public double addiere(double a, double b) {
    return a + b;
}

public int addiere(int a, int b, int c) {
    return a + b + c;
}
}

Der passende Methodentyp wird zur Compile-Zeit anhand der Argumente entschieden.

Vorteile von Polymorphie

Reduziert Duplikate im Code

Erlaubt flexible und einheitliche Schnittstellen

Unterstützt Entwurfsmuster und lose Kopplung

Beispiel: Polymorphie in Arrays und Schleifen

 Tier[] tiere = { new Hund(), new Katze(), new Tier() };
for (Tier t : tiere) {
t.geraeusch(); // jeder macht sein eigenes Geräusch
}