Foliensatz 7: Vererbung Flashcards

1
Q

Woraus setzt sich eine Unterklasse zusammen (3 Dimensionen eines ABAP-Objects)?

A
  • allen Elementen der darüber liegenden Oberklassen bis zur Wurzel (Redundanzvermeidung)
  • ihre eigenen Elementen mit neuen Aufgaben(Neuimplementation)
  • geerbte Methoden, die verändert werden (Spezialisierung durch Redefiniton)

-Oberklasse kann mehrere Unterklassen haben, aber eine Unterklasse kann nur eine Oberklasse haben, also keine Mehrfachvererbung erlaubt

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was sind die Ziele des Vererbungskonzepts?

A

Das Konzept der objektorientierten Vererbung soll eingesetzt werden
• zur Veränderung der Funktionalität
• ohne Beeinträchtigung der Quellklasse oder
• ohne Hinzufügen redundanten Codes

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Wie wird im ABAP Objects im Rahmen der Vererbung die Redundanzvermeidung erreicht?

A
  • die speziellere, erbende Klasse besitzt implizit alle Methoden der Oberklasse, müssen also nicht explizit deklariert werden
  • speziellere Klasse enthält desweiteren Methoden, die Oberklasse nicht hat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Worin unterscheiden sich im ABAP-Objects Spezialisierung und Neuimplementation?

A

Eine Spezialisierung erbt alle Methoden der Oberklasse und kann dann durch weitere eigene Methoden diese Klasse noch spezialisieren, während eine Neuimplementation nichts erbt und alles neu implementiert.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

In welcher Beziehung sollte eine Superklasse zur Subklasse stehen, um eine Vererbung zu rechtfertigen?

A

Die Superklasse sollte eine allgemeine Implementation des Grundverhalten und der Grundeigenschaften sein, die alle Subklassen teilen. Die Subklasse sollte eine Spezialisierte Sonderform sein, die sie von an-deren Subklassen, sowie dem Supertyp unterscheidet. Z.B. Supertyp Konto mit Inhaber und Kontostand und Festgeldkonto mit Zinsen und Laufzeit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Eine Klasse C1 vererbt auf C21 und C22. Können in ABAP‐Objects C21 und C22 auf eine weitere Klasse C3 vererben

A

Nein, C21 und C22 können nicht beide auf C3 vererben, weil ABAP-Obejcts keine Mehrfachvererbungen kennt. Eine Unterklasse kann immer nur jeweils eine Oberklasse haben. Dies dient dazu, damit es keine Namenskonflikte gibt, wie z.B. wenn beide Oberklassen eine Methode mit selben Namen hätten. Gleichzeitig führt dies zu Performancenachteilen.
Private Methoden oder Attribute werden dabei nicht vererbt.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Wie legt man eine Unterklasse in ABAP-Objects an?

A

CLASS subclass DEFINITION INHERITING FROM superclass.
……
ENDCLASS.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Was ist eine abstrakte Klasse?

A

Eine abstrakte Klasse dient nur als Avorlage, aus der keine Objekte erzeugt werden können.
-CLASS myclassDEFINITION ABSTRACT.
Dies dient dazu, wenn die Funktionalität im Zeitpunkt der Klassierung durch die Klasse nicht vollständig implementiert werden kann/soll.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Welchen Sinn besitzt eine abstrakte Klasse?

A

-Bereitstellung einer gemeinsamen Schnittstelle und einer teilweisen implementierten Funktionalität. abstrakte Klassen können selbst aber noch keine sinnvollen Operationen auf ihren Attributen ausführen

Beispiel:
Gehaltsabrechnungssystem:
-Klasse kann Überweisung Schnittstellen vorgeben, während eigentliche Gehaltsabrechnung noch abstrakt bleibt
-wird dann erst in Subklassen implementiert, in den die verschiedenen Anstellungsverhältnisse der Mitarbeiter definiert und implementiert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Was ist eine finale Klasse?

A

Sollen Klassen vor unkontrollierter Spezialisierung geschützt werden, können sie als final deklariert werden:
CLASS classDEFINITION FINAL.

  • finale Klasse besitzt keine Unterklassen
  • finale Methode kann nicht redefiniert werden
  • finale Methoden können nicht abstrakt definiert werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Welchen Sinn besitzt eine finale Klasse?

A

Schützt vor Namenskollisionen bei “Erbfreigabe”. Das Überschreiben wird verboten, damit die Methoden nicht redefiniert werden

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Wie wird in ABAP-Objects eine Methode redefiniert?

A
  • bei Redefiniton bleibt Schnittstelle erhalten, nur Implementation der Methode ändert sich
  • statische Methoden können nicht redefiniert werden

METHODS methREDEFINITION.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Was ist der Unterschied einer Neuimplementation zur Redefinition?

A
  • neuimplementierte Methode gab es zuvor in Oberklasse noch nicht
  • eindeutiger Name im Namensraum muss verwendet werden
  • vollständige Deklaration mit Schnittstelle muss vorgenommen werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Was sind Konstruktoren?

A
  • jede Klasse besitzt einen vordefinierten Instanzkonstruktur namens “constructor”
  • Instanzkonstruktoren können nicht redefiniert und nicht mit “constructor()” aufgerufen werden
  • werden bei Klasseninitiierung einmal ausgeführt
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was sind die Vorteile von Vererbung?

A
  • Wiederverwendbarkeit
  • Vermeidung von Code Redundanz
  • Fehlerkorrekturen in Oberklasse wirken sich unmittelbar auch auf Unterklassen aus
  • konzeptionelle Grundlage der Polymorphie
How well did you know this?
1
Not at all
2
3
4
5
Perfectly