Hallo!
ich versuche mich gerade auf eine Prüfung vorzubereiten und in dieser geht es um Kovarianz und Kontravarianz im Bezug auf Typsicherheit.Hierfür hab ich mir das Buch "Objektorientierte Softwareentwicklung mit UML" geholt.
In diesem wird z.b. bei der Typsicherheit beschrieben das Kontravarianz bei den Eingabeparametern typsicher ist, jedoch nicht bei den Ergebnisparametern. In dem Buch wird auch ein Beispiel dazu gegeben. Das Beispiel ist auch hier zu finden:Objektorientierte ... - Google Bücher
der Fehler tritt in dem Beispiel an der Stelle
auf, wobei john vom Typ Traktorist ist.
Das verstehe ich allerdings nicht wirklich. Es wurde doch geschrieben das Kontravarianz bei den Eingabeparametern typsicher ist und somit an dieser Stelle keine Fehler auftreten dürften. setFzgFuehrer(john) nutzt aber doch die Eingabeparameter und trotzdem tritt ein Fehler auf?
Der Fehler müsste doch viel mehr bei den getMethoden auftreten, oder seh ich das falsch?
Zumal sie das weiter oben ja auch schreiben..
Dieses Beispiel verwirrt mich sehr, kann mir das villeicht jemand erklären?
Vielen Dank!
ich versuche mich gerade auf eine Prüfung vorzubereiten und in dieser geht es um Kovarianz und Kontravarianz im Bezug auf Typsicherheit.Hierfür hab ich mir das Buch "Objektorientierte Softwareentwicklung mit UML" geholt.
In diesem wird z.b. bei der Typsicherheit beschrieben das Kontravarianz bei den Eingabeparametern typsicher ist, jedoch nicht bei den Ergebnisparametern. In dem Buch wird auch ein Beispiel dazu gegeben. Das Beispiel ist auch hier zu finden:Objektorientierte ... - Google Bücher
der Fehler tritt in dem Beispiel an der Stelle
Code:
f.setFzgFuehrer(john);
Das verstehe ich allerdings nicht wirklich. Es wurde doch geschrieben das Kontravarianz bei den Eingabeparametern typsicher ist und somit an dieser Stelle keine Fehler auftreten dürften. setFzgFuehrer(john) nutzt aber doch die Eingabeparameter und trotzdem tritt ein Fehler auf?
Der Fehler müsste doch viel mehr bei den getMethoden auftreten, oder seh ich das falsch?
Zumal sie das weiter oben ja auch schreiben..
Dieses Beispiel verwirrt mich sehr, kann mir das villeicht jemand erklären?
Vielen Dank!