Product Design, Manufacturing & Innovation Resources
Heim » Polymorphismus (Programmierung)

Polymorphismus (Programmierung)

1967
  • Christopher Strachey
Arbeitsbereich für Computerprogrammierung zur Demonstration von Polymorphismus mit Codeschnipseln.

(Abbildung dient nur zur Veranschaulichung)

Polymorphismus, vom griechischen Wort für „viele Formen“, ermöglicht es, Objekte verschiedener Klassen als Objekte einer gemeinsamen Oberklasse zu behandeln. Er ermöglicht eine einheitliche Schnittstelle, wie zum Beispiel eine Verfahren Der Name dient der allgemeinen Beschreibung einer Aktionsklasse. Die konkrete Aktion wird zur Laufzeit durch den genauen Objekttyp bestimmt. Dies wird häufig durch Methodenüberschreibung erreicht.

Polymorphism is a powerful concept that allows for writing flexible and decoupled code. The most common form in OOP is subtype polymorphism, which is enabled by inheritance and method overriding. When a subclass provides a specific implementation for a method that is already defined in its superclass, it is called overriding. A variable of the superclass type can refer to an object of any of its subclasses. When a method is called on this variable, the version of the method that gets executed is the one belonging to the object’s actual class, not the variable’s type. This decision is made at runtime, a process known as dynamic dispatch or late binding.

Betrachten wir beispielsweise eine Oberklasse `Shape` mit der Methode `calculateArea()`. Unterklassen wie `Circle` und `Rectangle` können von `Shape` erben und ihre eigenen Implementierungen von `calculateArea()` bereitstellen. Ein Programm kann dann eine Liste von `Shape`-Objekten besitzen, die sowohl Instanzen von `Circle` als auch von `Rectangle` enthält. Beim Durchlaufen der Liste und Aufruf von `calculateArea()` für jedes Element wird automatisch die korrekte Formel für jede Form angewendet. Dadurch entfällt die Notwendigkeit langer if-else- oder switch-Anweisungen zur Typprüfung jedes Objekts, was zu saubererem und besser erweiterbarem Code führt. Neue Formen können dem System hinzugefügt werden, ohne den Code, der sie verarbeitet, ändern zu müssen.

UNESCO Nomenclature: 1203
- Computerwissenschaften

Typ

Abstraktes System

Störung

Inkremental

Verwendung

Weitverbreitete Verwendung

Vorläufer

  • das Konzept der Funktionszeiger in Sprachen wie C
  • Generische Programmierkonzepte
  • Vererbung, die die für den Subtyp-Polymorphismus notwendige Klassenhierarchie bereitstellt
  • der Bedarf an flexiblen und erweiterbaren Softwaresystemen

Anwendungen

  • Zeichnen verschiedener Formen ('Kreis', 'Quadrat') mit einem einzigen Aufruf der 'draw()'-Methode
  • Verarbeitung verschiedener Dokumenttypen ('pdf', 'word') mit einer generischen 'print()'-Funktion
  • Implementieren von Ereignishandlern für Benutzeroberflächen
  • generische Sammlungen, die Objekte unterschiedlicher, aber verwandter Typen enthalten können
  • Frameworks zur Abhängigkeitsinjektion

Patente:

NA

Potenzielle Innovationsideen

Aufgrund des hohen Datenverkehrs durch Web-Scraping-Bots, der derzeit mehr als 40.000 Anfragen pro Tag umfasst, ist dieser Inhalt ausschließlich Community-Mitgliedern vorbehalten.
> Anmelden < oder > Registrieren < (100% kostenlos) Zugriff darauf sowie auf alle anderen eingeschränkten Inhalte und Tools.

Verwandt mit: Polymorphismus, Überschreiben, dynamische Dispatch, späte Bindung, Subtyp, Schnittstelle, Abstraktion, OOP, Methodenüberschreiben, Laufzeit.

Historischer Kontext

Polymorphismus (Programmierung)

1956
1960
1967
1967
1970
1970
1970
1953
1960
1960
1967
1970
1970
1970
1970

(wenn das Datum unbekannt oder nicht relevant ist, z. B. „Strömungsmechanik“, wird eine gerundete Schätzung seines bemerkenswerten Auftretens bereitgestellt)

Verwandte Erfindungen, Innovationen und technische Prinzipien

Bilder in voller Größe und Downloads sind nur für registrierte Mitglieder 100% kostenlos verfügbar.

> Login <