Überladen von Methoden- und Funktionsnamen

In vielen Programmiersprachen ist das Überladen eines Funktions- oder Methodenidentifikators eine gebräuchliche Form der Polymorphie und wird deshalb auch als "ad hoc Polymorphie" bezeichnet. Die Idee ist es, einem Identifikator mehrere Rümpfe zuzuordnen und anhand der Anzahl und Typisierung der aktuellen Parameter die dazu passende Implementierung aufzurufen.

Durch die statisch gegebenen Typinformationen über die aktuellen Parameter - einschließlich des benachrichtigten Objektes - kann die Verwendung einer polymorphen Funktion bzw. die Nachricht an ein Objekt vom Compiler durch den Aufruf des korrekten Funktionsrumpfes bzw. der Methode ersetzt werden. Ersetzungen und Typinformationsauswertungen zur Laufzeit - dynamisches Binden - sind nicht erforderlich.

Beispiele finden sich bei den arithmetischen Funktionen ("+","-"..etc.); diese Operatoren können ohne weiteres als binäre Funktionen aufgefasst werden: a+b = +(a,b). Die Benutzung mit int-Werten führt zu einem anderen Aufruf als der Aufruf mit real-Werten.

Klassenidentifikator beim Überladen von Methoden

Klassenidentifikator beim Überladen von Methoden

Funktionen (außerhalb einer Klassendefinition) oder Methoden (innerhalb einer Klassendefinition) werden einfach durch die Definition der verschiedenen Implementierungen überladen. Sie müssen sich lediglich durch Anzahl oder Typen der Argumente - nicht des Rückgabewertes - unterscheiden. Die Menge der Identifikatoren wird durch dieses zusätzliche Unterscheidungsmerkmal erweitert.

Einen wichtigen Anwendungsfall für das Überladen von Methoden stellen die Konstruktoren einer Klasse dar, die alle den gleichen Namen - den Klassenidentifikator - besitzen.

Informationen zum Artikel
Deutsch: Überladen von Methoden- und Funktionsnamen
Englisch:
Veröffentlicht: 17.11.2009
Wörter: 220
Tags: Sonstige Progr.
Links: Indium, Programmiersprache, Polymorphie, Typisierung, Parameter
Übersetzung: EN
Sharing: