Junior
Was ist der Unterschied zwischen Vererbung und Polymorphismus?
sobes.tech KI
Antwort von AI
Vererbung ist ein Mechanismus, der es einer Klasse (Unterklasse, abgeleitete Klasse) ermöglicht, Felder und Methoden einer anderen Klasse (Oberklasse, Basisklasse) zu erben. Dies fördert die Wiederverwendung von Code.
Polymorphismus ist die Fähigkeit, eine einheitliche Schnittstelle zu verwenden, um verschiedene Grundformen darzustellen. Im Kontext von Java bedeutet dies, dass eine Referenzvariable auf ein Objekt ihres eigenen Typs oder auf ein Objekt eines ihrer Untertypen verweisen kann. Es gibt den Kompilierungszeit-Polymorphismus (Methodenüberladung) und den Laufzeit-Polymorphismus (Methodenüberschreibung).
Der Hauptunterschied:
- Vererbung definiert Beziehungen zwischen Klassen (Eltern-Kind) und ermöglicht die Wiederverwendung von Code.
- Polymorphismus ermöglicht den Zugriff auf verschiedene Objekte über eine gemeinsame Schnittstelle, wobei die entsprechende Methode je nach tatsächlichem Objekttyp zur Laufzeit ausgeführt wird.
Beispiel für Laufzeit-Polymorphismus:
class Animal {
public void sound() {
System.out.println("Tier macht ein Geräusch");
}
}
class Dog extends Animal {
@Override
public void sound() {
System.out.println("Wuff-Wuff");
}
}
class Cat extends Animal {
@Override
public void sound() {
System.out.println("Miau-Miau");
}
}
public class Main {
public static void main(String[] args) {
Animal myDog = new Dog(); // Polymorphismus: Referenzvariable vom Typ Animal, die auf ein Dog-Objekt zeigt
Animal myCat = new Cat(); // Polymorphismus: Referenzvariable vom Typ Animal, die auf ein Cat-Objekt zeigt
myDog.sound(); // Ruft die Methode sound() der Klasse Dog auf
myCat.sound(); // Ruft die Methode sound() der Klasse Cat auf
}
}