04 OOP-Vererbung Flashcards
Welche drei zentrale Konzepte der ojektorientierten Programmierung gibt es unter anderem?
Das Prinzip der Vererbung, Abstraktion und Kapselung
Was ermöglicht das Prinzip der Vererbung?
Es ermöglicht die Wiederverwendbarkeit von Programmcode
Wie wird eine Klasse genannt, die ihre Elemente vererbt?
Basisklasse, Superklasse, Oberklasse, oder Elternklasse
Wie wird die Klasse, die die Elemenete erbt genannt?
Abgeleitete Klasse, Subklasse, Unterklasse, Kindklasse
Welche Elemente einer Klasse werden vererbt?
Alle Elemente der Basisklasse außer dem Konstruktor und Destruktor, private Elemente ebenfalls aber es ist in der abgeleiteten Klasse keine direkter Zugriff möglich
Was ist die Syntax der Vererbung?
Syntax der Vererbung
Klasse “Abgeleitet” erbt von Klasse “Basis”:
class Abgeleitet : Basis { // Programmcode der abgeleiteten Klasse }
Wie baut man Klassenhierarchien auf?
Durch eine wiederholte Vererbung, indem eine abgeleitete Klasse wiederum Basisklasse für eine neue Vererbung ist
An wie viele abgeleitete Klassen kann eine Basisklasse vererben
an beliebig viele abgeleitete Klassen
Von wie vielen Basisklassen kann bei C# eine abgeleitete Klasse erben?
Nur von einer Basisklasse
In welchem “Sinne” muss Vererbung durchgeführt werden? Gib ein (selbst gewähltes) Beispiel dafür an!
Im Sinne einer Spezialisierung
Fahrzeug
Personenkraftwagen
Skoda
Welche Beziehung muss zwischen den abgeleiteten Klassen einer Klassenhierarchie bestehen? Gib ein (selbst gewähltes) Beispiel dafür an!
Ist ein Beziehung
Essen –> Obst –> Apfel
Wie muss eine “Hat ein-Beziehung” zwischen Klassen beim Klassendesign berücksichtigt werden? Gib ein (selbst gewähltes) Beispiel an!
Sie darf beim Klassendesign nicht durch eine Vererbung, sondern eine Einbettung abgebildet werden
Beschreibe die Funktion von “protected”!
Protected Elemente sind aus Sicht der abgeleiteten Klasse public aus der Sicht der Außenwelt, also außerhalb der Klassenhierarchie private
Was sollte im Zusammenhang mit “protected” beachtet werden?
Es gibt das Risiko, dass die Elemente in der Basisklasse unsachgemäßer Weise verändert werden können
sensible Daten sollen daher in der Basisklasse nicht als protected deklariert werden!!!
Wie wird die Neudefinition von Elementen der Basisklasse in einer abgeleiteten Klasse bezeichnet und welches Schlüsselwort sollte dabei verwendet werden?
Auf welche Felder und Eigenschaften greifen geerbte Methoden immer zu, auch wenn diese in einer abgeleiteten Klasse neu definiert wurden?
Auf die verdeckten Felder und Eigenschaften des eigenen Objekts (des Basisklassenunterobjekts)
Werden bei einer Vererbung vermehrt Elemente der Basisklasse verdeckt, ist das häufig ein Zeichen von …
Design-Fehlern in den Basisklassen oder in der abgeleiteten Klasse
Was bilden die von einer Basisklasse geerbten Elemente innerhalb eines Objekts der abgeleiteten Klasse?
Ein Unterobjekt