Warum sind die Begriffe "Kovarianz" und "Kontravarianz" bei der Implementierung der Methoden einer Schnittstelle anwendbar?
Der Anwendungsfall sieht etwa so aus:
public class SomeClass : ICloneable
{
// Some Code
// Implementing interface method
public object Clone()
{
// Some Clonning Code
}
}
Jetzt ist meine FrageWarum ist es nicht möglich, "SomeClass (Da es von object abgeleitet ist)" als Rückgabetyp der Clone () - Methode zu verwenden, wenn wir die Funda von Covarianz und Contravarianz berücksichtigen?
Kann mir jemand den Grund für diese Implementierung von Microsoft erklären ????