13 Polymorphie in Java: Methodenüberladung und Methodenüberschreibung

13.1 Methodenüberladung

Methodenüberladung tritt auf, wenn mehrere Methoden im selben Gültigkeitsbereich denselben Namen haben, sich jedoch in der Anzahl oder Art der Parameter unterscheiden.

13.1.1 Beispiel für Methodenüberladung

public class Calculator {
    // Methode für die Addition von zwei Ganzzahlen
    public int add(int a, int b) {
        return a + b;
    }

    // Methode für die Addition von drei Ganzzahlen
    public int add(int a, int b, int c) {
        return a + b + c;
    }

    // Methode für die Addition von zwei Gleitkommazahlen
    public double add(double a, double b) {
        return a + b;
    }
}

13.1.2 Anwendung der überladenen Methoden

Calculator calc = new Calculator();
int sum1 = calc.add(1, 2);      // Ausgabe: 3
int sum2 = calc.add(1, 2, 3);   // Ausgabe: 6
double sum3 = calc.add(1.5, 2.5); // Ausgabe: 4.0

13.2 Methodenüberschreibung

Methodenüberschreibung ermöglicht es einer Unterklasse, die Implementierung einer in der übergeordneten Klasse definierten Methode zu ändern.

13.2.1 Beispiel für Methodenüberschreibung

public class Animal {
    void makeSound() {
        System.out.println("Some generic animal sound");
    }
}

public class Dog extends Animal {
    @Override
    void makeSound() {
        System.out.println("Woof, woof!");
    }
}

13.2.2 Anwendung der überschriebenen Methode

Animal myAnimal = new Dog();
myAnimal.makeSound();  // Ausgabe: "Woof, woof!"

Polymorphie ist ein zentrales Konzept der objektorientierten Programmierung und ermöglicht es, Objekte verschiedener Typen auf eine einheitliche Weise zu behandeln. Methodenüberladung und Methodenüberschreibung sind zwei Formen der Polymorphie, die für flexiblere und wiederverwendbare Codestrukturen sorgen. Methodenüberladung bietet eine Möglichkeit, Funktionen mit demselben Namen aber unterschiedlichen Signaturen zu definieren, während Methodenüberschreibung das Verhalten von geerbten Methoden ändert.