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 ????

Antworten auf die Frage(6)

Ihre Antwort auf die Frage