Sobes.tech
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 Dog und Cat erben von Animal.
  • Polymorphismus: Die Variablen myDog und myCat verweisen auf Objekte Dog bzw. Cat, obwohl sie vom Typ Animal sind. Beim Aufruf von makeSound() wird die Methode des Objekts ausgeführt, nicht die des Referenztyps.