2017-09-21 5 views
0

Von Programming Language Pragmatics von ScottWie werden Subtyp und parametrischer Polymorphismus kombiniert?

Die Kombination des Subtyps und parametrischen Polymorphismus ist besonders nützlich für Behälter (Sammlung) Klassen wie „-Liste von T“ (List) oder „Stapel von T“ (Stapel), wobei T anfänglich nicht spezifiziert ist und später als fast jeder Typ instanziiert werden kann.

Wo wird der Subtyp Polymorphismus in Containerklassen verwendet? Ich dachte, es wäre die Einschränkung für den Typparameter T, so dass T irgendein Untertyp eines gegebenen Typs ist, aber es besagt, dass "T anfänglich nicht spezifiziert ist". Also bin ich verwirrt.

Danke.

+0

Ich denke, der Autor bezieht sich auf etwas ähnlich wie Java PECS-Prinzip und C# co/Kontravarianz. Zum Beispiel kann in Java 'Function ' 'Function weil du eine Funktion hast, ein Tier mit einem Säugetier auch zu behandeln und eine Funktion, die eine Katze zurückbringt, gibt auch eine Katze zurück. –

Antwort

1

Wie im Volltext angegeben, beschreibt es Generika, bei denen der Typ zur Laufzeit angegeben werden kann.

Wo wird der Subtyp Polymorphismus in Containerklassen verwendet?

Eine Bibliothek könnte einen Klassencontainer definieren, aus dem Liste und Stapel abgeleitet werden.

Die „parametrischer Polymorphismus“ (was meiner Meinung nach ein schlechter Name ist) bezieht sich auf die Fähigkeit, eine generische Klasse zu verwenden und

Liste der Integer

Liste der String

usw.

erstellen
Verwandte Themen