Junior
Was sind Vererbung und Polymorphismus in referenziellen Datentypen?
sobes.tech KI
Antwort von AI
Vererbung ist ein Mechanismus, der es einer Klasse (Unterklasse, abgeleitete Klasse) ermöglicht, Eigenschaften und Verhalten einer anderen Klasse (Basisklasse, Elternklasse) zu übernehmen. Dies fördert die Wiederverwendung von Code und die Erstellung von Klassenhierarchien.
Polymorphismus ist die Fähigkeit von Objekten verschiedener Klassen, unterschiedlich auf eine gleiche Nachricht (Methodenaufruf) zu reagieren, abhängig von ihrem konkreten Typ. Im Kontext der Vererbung zeigt sich dies oft durch die Überschreibung von Methoden der Basisklasse in der abgeleiteten Klasse.
Beispiel (Java):
// Basisklasse
class Animal {
public void makeSound() {
System.out.println("Tier macht Geräusch");
}
}
// Abgeleitete Klasse
class Dog extends Animal {
@Override // Überschreibung der Methode
public void makeSound() {
System.out.println("Wau!");
}
}
// Abgeleitete Klasse
class Cat extends Animal {
@Override // Überschreibung der Methode
public void makeSound() {
System.out.println("Miau!");
}
}
class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Objekt Dog, aber Referenz vom Typ Animal
Animal myCat = new Cat(); // Objekt Cat, aber Referenz vom Typ Animal
myDog.makeSound(); // Ruft die Methode von Dog auf
myCat.makeSound(); // Ruft die Methode von Cat auf
}
}
In diesem Beispiel:
- Vererbung: Die Klassen
DogundCaterben vonAnimal. - Polymorphismus: Die Variablen
myDogundmyCatverweisen auf ObjekteDogbzw.Cat, obwohl sie vom TypAnimalsind. Beim Aufruf vonmakeSound()wird die Methode des Objekts ausgeführt, nicht die des Referenztyps.