Polymorphie

Wörtlich bedeutet Polymorphie "viele Erscheinungsformen". Der Begriff wird für verschiedene Erscheinungsformen objektorientierter Programmiersprachen verwendet.


  1. Die Eigenschaft von Variablen, verschiedene Typen annehmen zu können.
  2. Die Eigenschaft von Funktionen, polymorphe Argumente zuzulassen.
  3. Die Eigenschaft einer Funktion, für verschiedene Parametersätze mit gleichem Namen definiert zu sein.
  4. Die Eigenschaft eines Operators, sich auf Instanzen verschiedener Klassen während der Laufzeit zu beziehen. Daher werden polymorphe Botschaften von verschiedenen Objekten verschieden interpretiert.
Programmiersprachen werden entsprechend der Rolle, die die Typisierung dort spielt, in zwei Klassen unterschieden: statisch und dynamisch getypte Sprachen. Statisch bedeutet hier, dass bereits am Programmtext - also durch den Compiler - bestimmte Typinformationen ausgewertet werden können. Im Gegensatz dazu bedeutet dynamisch hier, dass erst zur Laufzeit des Programms das Laufzeitsystem diese Typinformationen auswertet.

In statisch getypten Programmiersprachen wie z.B. Pascal, Modula, der Programmiersprachen C, C++, wird ein Typ gerade den Variablen in einer expliziten Deklaration zugewiesen und legt fest, wie der Wert einer Variablen interpretiert und manipuliert werden kann. In dynamisch getypten Programmiersprachen wie z.B. Lisp und Smalltalk, ist dies gerade nicht der Fall. Dort werden die Typinformationen nicht mit der Variablendeklaration abgelegt, sondern der Wert einer Variablen enthält seine Typinformation. Eine Konsequenz ist, dass Variablen oder Funktionsargumente während der Laufzeit Werte verschiedener Typen aufnehmen können und dann entsprechend der Wertebelegung anders manipuliert werden.

Funktionen können nun so programmiert werden, dass sie unabhängig von der Typisierung ihrer Argumente unterschiedliche Aktionen durchführen können, so ist z.B. "+" auf int-Argumenten anders definiert als auf real-Argumenten und liefert unterschiedliche Werte von Typen als Funktionswerte ab. Solche Variablen, Argumente und Funktionen nennt man polymorph (vielgestaltig).

Informationen zum Artikel
Deutsch: Polymorphie
Englisch: polymorphism
Veröffentlicht: 14.11.2009
Wörter: 274
Tags: #Sonstige Programmiersprachen
Links: C++, Compiler, Instanz, Klasse, Laufzeit