Foliensatz 7: Vererbung Flashcards Preview

ERP > Foliensatz 7: Vererbung > Flashcards

Flashcards in Foliensatz 7: Vererbung Deck (15)
Loading flashcards...
1

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

-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

2

Was sind die Ziele des Vererbungskonzepts?

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

3

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

-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

4

Worin unterscheiden sich im ABAP-Objects Spezialisierung und Neuimplementation?

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.

5

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

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.

6

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

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.

7

Wie legt man eine Unterklasse in ABAP-Objects an?

CLASS subclass DEFINITION INHERITING FROM superclass.
......
ENDCLASS.

8

Was ist eine abstrakte Klasse?

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.

9

Welchen Sinn besitzt eine abstrakte Klasse?

-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

10

Was ist eine finale Klasse?

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

11

Welchen Sinn besitzt eine finale Klasse?

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

12

Wie wird in ABAP-Objects eine Methode redefiniert?

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

METHODS methREDEFINITION.

13

Was ist der Unterschied einer Neuimplementation zur Redefinition?

-neuimplementierte Methode gab es zuvor in Oberklasse noch nicht
-eindeutiger Name im Namensraum muss verwendet werden
-vollständige Deklaration mit Schnittstelle muss vorgenommen werden

14

Was sind Konstruktoren?

-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

15

Was sind die Vorteile von Vererbung?

-Wiederverwendbarkeit
-Vermeidung von Code Redundanz
-Fehlerkorrekturen in Oberklasse wirken sich unmittelbar auch auf Unterklassen aus
-konzeptionelle Grundlage der Polymorphie