Was versteht man unter Vererbung? In welcher Beziehung stehen Klassen, die voneinander erben? Geben Sie 3 Beispiele für Vererbung!

Antwort

Vererbung ist ein Konzept in der objektorientierten Programmierung, bei dem eine Klasse (die sogenannte Unterklasse oder abgeleitete Klasse) die Eigenschaften und Methoden einer anderen Klasse (der sogenannten Oberklasse oder Basisklasse) übernimmt. Dies ermöglicht es, wiederverwendbaren und modularen Code zu schreiben. Die Beziehung zwischen Klassen, die voneinander erben, ist eine "ist-ein"-Beziehung. Das bedeutet, dass die Unterklasse eine spezialisierte Version der Oberklasse ist. Die Unterklasse erbt alle öffentlichen und geschützten Eigenschaften und Methoden der Oberklasse und kann zusätzlich eigene Eigenschaften und Methoden definieren oder geerbte Methoden überschreiben. Hier sind drei Beispiele für Vererbung: 1. **Fahrzeug-Klasse:** - Oberklasse: `Fahrzeug` - Unterklassen: `Auto`, `Motorrad`, `LKW` ```java class Fahrzeug { String hersteller; int baujahr; void fahren() { System.out.println("Das Fahrzeug fährt."); } } class Auto extends Fahrzeug { int anzahlTueren; void hupen() { System.out.println("Das Auto hupt."); } } class Motorrad extends Fahrzeug { boolean hatBeiwagen; void wheelie() { System.out.println("Das Motorrad macht einen Wheelie."); } } ``` 2. **Tier-Klasse:** - Oberklasse: `Tier` - Unterklassen: `Hund`, `Katze`, `Vogel` ```java class Tier { String name; int alter; void essen() { System.out.println("Das Tier isst."); } } class Hund extends Tier { void bellen() { System.out.println("Der Hund bellt."); } } class Katze extends Tier { void miauen() { System.out.println("Die Katze miaut."); } } ``` 3. **Mitarbeiter-Klasse:** - Oberklasse: `Mitarbeiter` - Unterklassen: `Manager`, `Entwickler`, `Verkäufer` ```java class Mitarbeiter { String name; double gehalt; void arbeiten() { System.out.println("Der Mitarbeiter arbeitet."); } } class Manager extends Mitarbeiter { void leiten() { System.out.println("Der Manager leitet das Team."); } } class Entwickler extends Mitarbeiter { void programmieren() { System.out.println("Der Entwickler programmiert."); } } ``` Diese Beispiele zeigen, wie Vererbung genutzt werden kann, um gemeinsame Eigenschaften und Methoden in einer Oberklasse zu definieren und spezialisierte Funktionalitäten in den Unterklassen hinzuzufügen.

Frage stellen und sofort Antwort erhalten