Wie wird die "ist ein/e"-Beziehung in der Objektorientierung auch bezeichnet?
Vererbungsbeziehung
Was drückt die Vererbungsbeziehung aus?
Dass eine Klasse A wie eine andere Klasse B betrachtet werden kann; eine Klasse ist eine spezielle Art einer anderen Klasse.
Was ist der Unterschied zwischen der "ist ein/e"-Beziehung und einer normalen "kennt"-Beziehung?
Die "ist ein/e"-Beziehung drückt aus, dass eine Klasse eine spezielle Art einer anderen Klasse ist, während "kennt" nur eine lose Assoziation zwischen zwei eigenständigen Klassen beschreibt.
Wie wird die Klasse bezeichnet, von der andere Klassen ableiten?
Oberklasse (auch: Basisklasse oder Superklasse)
Wie werden die Klassen bezeichnet, die von einer Oberklasse ableiten?
Unterklassen (auch: abgeleitete Klasse oder Subklasse).
Wie wird in UML-Klassendiagrammen die Vererbungsbeziehung notiert?
Als Linie zwischen zwei Klassen mit einer geschlossenen, nicht ausgefüllten Pfeilspitze am Ende (zeigt zur Oberklasse).
Was wird durch Vererbung an die Unterklassen weitergegeben (3 Elemente)?
Besitzen Unterklassen nur die Attribute der Oberklasse, oder auch eigene?
Sie besitzen alle Attribute der Oberklasse UND definieren zusätzlich weitere, eigene Attribute, die für ihre spezifische Beschreibung wichtig sind.
Können Objekte einer Unterklasse mit denselben Methoden angesprochen werden wie Objekte der Oberklasse?
Ja, Objekte der Unterklassen besitzen dieselben Methoden wie Objekte der Oberklassen und lassen sich auf dieselbe Art und Weise ansprechen.
Was bedeutet "die Vererbungsbeziehung ist transitiv"?
Eine weitere Spezialisierung einer bereits abgeleiteten Klasse erbt automatisch auch alle Attribute/Methoden der ursprünglichen Oberklasse (z. B. erbt "Sachbuch" sowohl von "Buch" als auch von "Artikel").
Was passiert mit den abgeleiteten Klassen, wenn der Oberklasse ein Attribut hinzugefügt wird?
Alle abgeleiteten Klassen erhalten automatisch ebenfalls das neue Attribut.
Was passiert mit den Unterklassen, wenn ein Attribut aus der Oberklasse entfernt wird?
Es steht dann auch in den Unterklassen nicht mehr zur Verfügung.
Was sind die zwei zentralen Vorteile der Vererbung für den Systementwurf?
Vermeidung von Redundanz und Verbesserung der Übersichtlichkeit des Modells.
Ist es ein Problem, wenn durch Vererbung neue Klassen im Modell entstehen, die in der Analysephase nicht identifiziert wurden?
Nein, das ist unproblematisch, solange es der Übersichtlichkeit des Modells dient.
Wie viele Oberklassen sollte eine Unterklasse im Allgemeinen haben?
Nur eine einzelne Oberklasse (Einfachvererbung ist üblich).
Was würde bei mehreren Oberklassen (Mehrfachvererbung) passieren, und welches Risiko besteht dabei?
Die Unterklasse würde die Vereinigungsmenge der Attribute und Methoden aller Oberklassen erben; Risiko: Namenskonflikte, wenn in unterschiedlichen Oberklassen dieselben Namen mit unterschiedlicher Bedeutung vergeben wurden – das verringert die Verständlichkeit und führt zu Modellierungsfehlern.
Erlaubt Java Mehrfachvererbung?
Nein, Java erlaubt keine Mehrfachvererbung.
Warum ist die Reduktion von Redundanz durch Vererbung mehr als nur "weniger Tipparbeit" – welchen praktischen Vorteil bei Änderungen bringt sie?
Ohne Vererbung müssten gemeinsame Attribute (z. B. Hersteller, Titel, Artikelnummer) in jeder einzelnen Klasse separat gepflegt werden. Ändert sich etwas an diesen gemeinsamen Eigenschaften, müsste die Änderung in jeder betroffenen Klasse einzeln nachgezogen werden – fehleranfällig und aufwändig. Mit Vererbung genügt eine Änderung an der Oberklasse, die automatisch an alle Unterklassen weitergegeben wird.
Warum ermöglicht Vererbung, "über Dinge im Allgemeinen und im Speziellen zu sprechen, ohne sich zu wiederholen" – erkläre am Beispiel der Artikelseiten im Online-Shop?
Auf einer allgemeinen Ebene kann man einfach sagen "jeder Artikel hat eine eigene Seite" (allgemeine Aussage über die Oberklasse "Artikel"). Wie diese Seite konkret aussieht, unterscheidet sich aber je nach tatsächlicher Art des Artikels (spezielle Aussage über die Unterklasse, z. B. ein Buch zeigt den Autor, ein Musikartikel den Interpreten). Die Vererbung erlaubt es, das Gemeinsame einmal (in der Oberklasse) und das Spezielle nur dort zu beschreiben, wo es wirklich abweicht (in der jeweiligen Unterklasse) – ohne die gemeinsamen Eigenschaften in jeder Unterklasse zu wiederholen.
Warum wird Mehrfachvererbung in der Praxis kritisch gesehen, obwohl sie theoretisch mehr Flexibilität böte?
Weil bei mehreren Oberklassen Namenskonflikte entstehen können (gleicher Attribut-/Methodenname mit unterschiedlicher Bedeutung in unterschiedlichen Oberklassen), was die Verständlichkeit des Modells verringert und zu Fehlern führt. Zudem unterstützen manche Programmiersprachen wie Java Mehrfachvererbung technisch gar nicht – Modelle mit Mehrfachvererbung wären dort also gar nicht direkt umsetzbar.
Erkläre am Beispiel von Herrn Kochs Online-Shop, wie die Oberklasse "Artikel" und die Unterklassen "Buch", "Musikartikel", "Spiel" und "Film" zusammenhängen.
Herr Koch stellt fest, dass "Buch", "Musikartikel", "Spiel" und "Film" die Attribute Hersteller, Titel und Artikelnummer gemeinsam haben, während Autor nur bei Buch und Spiel, Interpret nur bei Musikartikel und Regisseur nur bei Film wichtig ist. Die gemeinsamen Attribute werden in der neuen Oberklasse "Artikel" zusammengefasst; die vier ursprünglichen Klassen werden zu Unterklassen, die per "ist ein/e"-Beziehung von "Artikel" erben. Ein "Buch" besitzt dadurch weiterhin Hersteller, Titel und Artikelnummer (geerbt von Artikel) sowie zusätzlich sein eigenes Attribut Autor.
Erkläre am Beispiel "Sachbuch" die Transitivität der Vererbung.
Wird "Sachbuch" als weitere Spezialisierung von "Buch" modelliert, erbt "Sachbuch" nicht nur die Attribute von "Buch" (z. B. Autor), sondern über "Buch" hinweg auch automatisch alle Attribute von "Artikel" (Hersteller, Titel, Artikelnummer) – die Vererbung "vererbt sich mit" über mehrere Ebenen hinweg.
Erklären Sie das Konzept der Vererbung im UML-Klassendiagramm anhand von Ober- und Unterklasse, und nennen Sie die zentralen Vorteile.
Vererbung basiert auf der "ist ein/e"-Beziehung: Sie drückt aus, dass eine Klasse (Unterklasse) eine spezielle Art einer anderen Klasse (Oberklasse) ist – im Unterschied zur einfachen "kennt"-Beziehung. Notiert wird sie im UML-Klassendiagramm als Linie mit geschlossener, nicht ausgefüllter Pfeilspitze zur Oberklasse. Gemeinsame Attribute mehrerer Klassen werden in einer Oberklasse zusammengefasst und über Vererbung an die Unterklassen weitergegeben – zusammen mit Methoden und Assoziationen. Unterklassen besitzen zusätzlich zu den geerbten Elementen eigene, spezifische Attribute und Methoden. Die Vererbung ist transitiv, das heißt, sie wirkt über mehrere Ableitungsebenen hinweg. Änderungen an der Oberklasse (z. B. neues Attribut) wirken sich automatisch auf alle Unterklassen aus. Die zentralen Vorteile sind die Vermeidung von Redundanz und eine verbesserte Übersichtlichkeit des Modells. Üblicherweise leitet eine Unterklasse nur von einer einzigen Oberklasse ab (Einfachvererbung); Java erlaubt keine Mehrfachvererbung, da diese zu Namenskonflikten und geringerer Verständlichkeit führen kann.
Last changed2 days ago