Rekursiv beschränkter parametrischer Polymorphismus

09.03.2010 Programmieren

Eine interessante Spielart aus dem Bereich des parametrischen Polymorphismus ist der sog. rekursiv beschränkte parametrische Polymorphismus.

Dabei handelt es sich um Typen, die sich in ihrer Definition selbst referenzieren, z.B.:
Java

Die abstrakte Klasse Equatable definiert einen Typparameter T, der von dem Typ Equatable nach oben begrenzt wird. T muss also als Subtyp von Equatable instanziiert werden. Eine die Klasse Equatable erweiternde Klasse A, die den Typparameter T mit sich selbst instanziiert, erfüllt also die obige Bedingung. Besitzt Equatable generische Methoden, die den Typparameter T z.B. als Argumenttyp verwenden, wird für jede konkrete Subklasse eine subklassenspezifische Methodensignatur erzeugt:

Java

Equatable ist also ein generischer Typ, der einen Typparameter definiert, der nur Subtyp von ihm selbst sein kann. Seine Subklassen können dann Methoden erben, die für ihre Methodenparameter oder Rückgabewerte nur genau diesen Subtyp selbst zulassen. Ein prominenter Vertreter dieses generischen Typs ist:

Java

Seine Methode public final int compareTo(E o) { ... } vergleicht somit immer Objekte (genauer: Aufzählungen, Enums) des gleichen Typs. Rekursive Typen werden bei der Realisierung von dynamische Strukturen wie z.B. verzeigerte Listen oder Bäume verwendet.

Hat Dir dieser Inhalt gefallen? Möchtest Du mir etwas Gutes tun, dann fülle doch ein wenig Kaffee in meine leere Kaffeekanne.
Nutze dazu einfach meinen PayPal.Me-Button*. Vielen Dank!

*Mehr Informationen zum PayPal.Me-Link erhältst Du hier: Impressum & Datenschutz