Sauf erreur de ma part, on a la situation suivante. Je déclare une classe A avec une méthode d sans mettre de virtual, puis une classe B qui hérite de A et qui redéfinie d avec un new. Cette redéfinition n'implique aucun polymorphisme : si j'ai une variable de type A, alors l'appel à d provoquera toujours l'exécution de la méthode de A, même si le type réel de l'objet référencé par la variable est B. Par contre, si j'ai une variable de type B, alors l'appel à d exécutera la méthode de B. En d'autres termes, selon le type de la référence vers un même objet, la méthode exécutée n'est pas la même. Il n'est pas possible de faire ça en Java et je trouve ça bien. J'avoue que je ne comprends pas trop à quoi ça sert en C#.
[^] # Re: C'est un troll.
Posté par boubou . En réponse à la dépêche Mono 1.0 sous le feu des projecteurs. Évalué à 2.