Wie unterscheidet man eine Methodenüberladung von einer Überschreibung in der objektorientierten Programmierung?
sobes.tech KI
Antwort von AI
Methodenüberladung (overloading) und Methodenshadowing (overriding) sind unterschiedliche Konzepte in der objektorientierten Programmierung:
-
Methodenüberladung: Es gibt mehrere Methoden mit demselben Namen in einer Klasse, aber mit unterschiedlichen Parametern (Typ, Anzahl). Dies ermöglicht es, die Methode mit verschiedenen Argumenten aufzurufen.
-
Methodenüberschreibung: Eine Unterklasse stellt eine eigene Implementierung einer Methode bereit, die bereits in der Basisklasse mit derselben Signatur (Name und Parameter) definiert ist. Dies ermöglicht es, das Verhalten der Methode in der Unterklasse zu ändern.
Beispiel in Java:
class Animal {
void sound() {
System.out.println("Ein Geräusch");
}
void sound(String mood) { // Überladung
System.out.println("Geräusch bei " + mood);
}
}
class Dog extends Animal {
@Override
void sound() { // Überschreibung
System.out.println("Bellen");
}
}
Hier überschreibt sound() in der Klasse Dog die Methode der Basisklasse, und sound(String mood) ist eine Überladung der Methode in derselben Klasse Animal.