Foliensatz 10: Polymorphie Flashcards

1
Q

Was ist der statische Typ einer Variable?

A

Der statische Typ bestimmt die Verwendersicht eines Objekts, Verwendersicht wird durch ein ABAP-Programm oder eine Prozedur gekennzeichnet
-DATA iref TYPE REF TO intf

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

Was ist der dynamische Typ einer Variable?

A

Bestimmt das Verhalten eines Objektes, damit lassen sich unterschiedliche Methoden-Implementierungen erreichen bei gleichen Signaturen.
-CREATE OBJECT iref TYPE myclass

Beispiele:

  • unterschiedliche Zinsberechnungen bei Bankkonten
  • unterschiedliche Preisberechnungen je Flugklasse
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was ist Polymorphie?

A

Polymorphie bezeichnet die Eigenschaft,

  • unterschiedlich implementierte Methoden,
  • die zu unterschiedlichen Objekten verschiedener Klassen gehören
  • mit dem gleichen Bezeichner über dieselbe Schnittstelle (Signaturen) ansprechen zu können
  • Verwender ruft über statische Referenzvariable die Methoden von Objekten auf, die über ihre Signatur zur Anwendung kommen soll
  • dynamische Referenzvariable bestimmen dann, welche Implementierung einer Methode tatsächlich ausgeführt wird-> es kommt immer zur Ausführung der speziellsten Methodenimplementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Wie ist Polymorphie im Kontext von ABAP?

A

Wird verwirklicht durch:

  • Redefinition von Methoden in der Vererbung, indem in der Subklasse speziellere, redefinierte Methoden implementiert werden
  • Implementation von Methoden, die in Interfaces deklariert und in bezogenen Klassen speziell implementiert werden

->Es sind nie die Objekte selbst, die polymorphes Verhalten aufweisen, sondern deren Referenzvariablen, die unterschiedliche dynamische Typen annehmen können.

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

Was ist der praktische Vorteil für den Ansatz der Polymorphie?

A
  • Verwender kann mit unterschiedlichen Klassen über gleiche Schnittstelle umgehen ohne Kenntnisse der Implementierungsdetails
  • Ohne Polymorphie müsste für jedes Objekt eigene Referenzvariablen gebildet werden
  • Mit Einsatz der Polymorphie kann auf die Verwendung von Kontrollstrukturen weitgehend verzichtet, um die dynamischen Typen der Referenzvariablen auseinander zu steuern
  • ermöglicht Erstellung generischer Programme, die sich stabil gegenüber neuen Anforderungen verhalten, weil Implementierungen verändert oder erweitert werden können, ohne Auswirkung auf den Zugang
How well did you know this?
1
Not at all
2
3
4
5
Perfectly