Foliensatz 10: Polymorphie Flashcards
Was ist der statische Typ einer Variable?
Der statische Typ bestimmt die Verwendersicht eines Objekts, Verwendersicht wird durch ein ABAP-Programm oder eine Prozedur gekennzeichnet
-DATA iref TYPE REF TO intf
Was ist der dynamische Typ einer Variable?
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
Was ist Polymorphie?
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
Wie ist Polymorphie im Kontext von ABAP?
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.
Was ist der praktische Vorteil für den Ansatz der Polymorphie?
- 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