Implementationsvererbung Flashcards
Für was ist die Vererbung das Mittel?
Das Mittel der Generalisierung in objektorientierten Programmiersprachen
Beschreibe die Generalisierung in OOP
- Gemeinsamkeiten mehrerer Klassen in Oberklasse zusammengefasst
- Folge: weniger redundanz
Beschreibe die Spezialisierung in OOP
- neue Unterklassen als Spezialisierung von bestehenden
- verfeinern/erwitern
- Gemeinsames in Oberklasse, Anpassung für andere/neue Kontexte in Unterklassen
- Folge: weniger Redundanz
Wie werden Felder/Attribute einer Oberklasse von Unterklassen übernommen?
vollständig und unverändert, es können zusätzliche hinzugefügt werden in der Unterklasse
Wie werden Methoden/Operationen einer Oberklasse in Unterklassen übernommen?
- hinzufügen, es existiert noch keine Operation mit gleicher Signatur in einer Oberklasse – spezialisiertes Verhalten
-
redefinieren, wenn eine neue Methode in der Unterklasse eine gleichnamige Methode einer Oberklasse ersetzt und damit
– überschreibt (komplett ersetzt) oder
– erweitert (geerbte Methoden durch super-Aufruf einbezieht) - definieren (durch eine Methode implementieren), für die in der Oberklasse keine Methode (Implementierung) angegeben war
Wie unterscheiden sich Methoden von Operationen?
Methoden: Schnittstelle + Implementierung
Operation: Schnittstelle
Wie richtet man Implementationsvererbungen in Java ein?
Über “extends”
Wie verhält es sich mit private Eigenschaften der Oberklasse in den Unterklassen?
Sie werden vererbt, sind aber in der Unterklasse nicht benutzbar
Wie löst man das Problem, dass Eigenschaften unter “private” in Oberklassen von Unterklassen nicht genutzt werden können?
Man verwendet “protected”
Wenn eine Klasse nicht explizit von einer Oberklasse erbt, wovon erbt sie dann implizit?
Von der Klasse Object
Welche Operationen definiert die Klasse Object?
- toString()
- equals(Object other)
- hasCode()
Welche Annotation muss verwendet werden, wenn man Methoden redefiniert?
@Override
Wie werden aufzurufende Methoden bestimmt in Java?
Wie ruft man bei der Redefination einer Operation die Methode der Oberklasse auf?
Über das Schlüsselwort super mit “super.methodenName()”
Wie weist man auf abstrakte Klassen in UML hin?
kursiver klassenname