Methodenüberladung tritt auf, wenn mehrere Methoden im selben Gültigkeitsbereich denselben Namen haben, sich jedoch in der Anzahl oder Art der Parameter unterscheiden.
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;
}
}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.0Methodenüberschreibung ermöglicht es einer Unterklasse, die Implementierung einer in der übergeordneten Klasse definierten Methode zu ändern.
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!");
}
}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.