Guten Mittag^^,
Unzwar finde ich im Internet zum Thema Ko-Kontra-Invarianz einfach keine hilfreichen Praxisbeispiele. Mal angenommen wir haben ein UML Diagramm mit einer Superklasse und Subklassen, dann sind ja die Subklassen die Varianzen.
Der Typ T‘ des Parameters a einer Methode der Subklasse B ist eine Spezialisierung des Typs T des Parameters der entsprechenden Methode der Superklasse A.(Kovarianz)
A methode(a: T)(Superklasse)
B methode(a: T');(Subklasse)
Der Typ T‘ des Parameters a einer Methode der Superklasse A ist eine Spezialisierung des Typs T des Parameters a der entsprechenden Methode der Subklasse B sein.(Kontravarianz)
A methode(a: T‘)(Superklasse)
B methode(a: T);(Subklasse)
Meine Frage: Kann mir jemand vielleicht mal ein Beispiel geben damit ich das direkt verstehe, die Theorie davon verstehe ich, kann es jedoch in die Praxis nicht ganz umwandeln.
Das damit verbundene Liskovsche Prinzip ist auch so theoretisch in den Vorlesungsfolien formuliert, kann mir das evtl. einer in der Praxis zeigen bzw. mich darauf hinführen?
Unzwar finde ich im Internet zum Thema Ko-Kontra-Invarianz einfach keine hilfreichen Praxisbeispiele. Mal angenommen wir haben ein UML Diagramm mit einer Superklasse und Subklassen, dann sind ja die Subklassen die Varianzen.
Der Typ T‘ des Parameters a einer Methode der Subklasse B ist eine Spezialisierung des Typs T des Parameters der entsprechenden Methode der Superklasse A.(Kovarianz)
A methode(a: T)(Superklasse)
B methode(a: T');(Subklasse)
Der Typ T‘ des Parameters a einer Methode der Superklasse A ist eine Spezialisierung des Typs T des Parameters a der entsprechenden Methode der Subklasse B sein.(Kontravarianz)
A methode(a: T‘)(Superklasse)
B methode(a: T);(Subklasse)
Meine Frage: Kann mir jemand vielleicht mal ein Beispiel geben damit ich das direkt verstehe, die Theorie davon verstehe ich, kann es jedoch in die Praxis nicht ganz umwandeln.
Das damit verbundene Liskovsche Prinzip ist auch so theoretisch in den Vorlesungsfolien formuliert, kann mir das evtl. einer in der Praxis zeigen bzw. mich darauf hinführen?