Alors j'expose rapidement mon problème et le plus simplement possible :)
public abstract class A{
public C plop();
}
public class B:A{
public override D plop(){
...
}
public class C{}
public class D:C{}
}
Apparement, ceci n'est pas possible (je parle du public override D plop). J'aimerais qu'on m'explique en quoi cela n'est pas possible puisque l'on peut très bien faire C = D...
L'erreur est 'B.plop()' : le type de retour doit être 'C' pour correspondre au membre substitué 'A.plop()'
J'ai du mal à comprendre la logique de la chose à vrai dire, et ça enlève même un des grands intérêt de l'héritage...
Ah aussi, au cas où certains y penseraient, ça ne fonctionne pas non plus avec une interface (on ne sais jamais);
Merci d'avance
LTourist
PS : je n'ai pas trouver de catégorie qui corresponde à ma question...