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;
}
}
= new Calculator();
Calculator calc 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
Methodenü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!");
}
}
= new Dog();
Animal myAnimal .makeSound(); // Ausgabe: "Woof, woof!" myAnimal
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.