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.
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. –