Je la situation suivanteImpossible de remplacer la méthode virtuelle C#
public interface IFoo
{
void Bar();
}
public class Parent : IFoo
{
public virtual void Bar(){}
}
public class Child : Parent, IFoo
{
public override void Bar(){}
}
IFoo test = new Child();
test.Bar();
test.Bar() appelle toujours la méthode mère!
Toute aide serait grandement appréciée !!
Le code vous avez posté ne compile pas: il ne peut pas y avoir le modificateur 'public' dans' IFoo.Bar'. Par conséquent, nous ne pouvons pas dire ce qui ne va pas avec votre code. S'il vous plaît poster le vrai morceau de code dépouillé au cœur de votre problème. Très probablement, vous implémentez 'IFoo.Bar' explicitement dans' Parent' et donc 'Child' ne le surchargera pas. –
Vous allez devoir fournir plus de code. Ce test provoque l'exécution de 'Child.Bar' ici. (Et votre définition d'interface est syntaxiquement incorrecte - les membres de l'interface n'ont pas de spécificateurs de visibilité.) – cdhowie
Votre exemple ne compile pas. Voulais-tu faire de Parent une classe abstraite? – asawyer