En C#, méthode virtuelle
1. Méthode virtuelle
Une méthode marquée avec le mot-clé virtual
peut être redéfinie (override
) dans une classe dérivée.
Exemple :
public class Animal
{
public virtual void Crier()
{
Console.WriteLine("L’animal fait un bruit.");
}
}
public class Chien : Animal
{
public override void Crier()
{
Console.WriteLine("Le chien aboie : Wouf !");
}
}
class Program
{
static void Main()
{
Animal a1 = new Animal();
a1.Crier(); // → L’animal fait un bruit.
Animal a2 = new Chien();
a2.Crier(); // → Le chien aboie : Wouf !
}
}
🔑 Ici :
-
virtual
dit : "Cette méthode peut être redéfinie." -
override
dit : "Je redéfinis la méthode d’une classe parente."
2. Différence avec abstract
et sealed
-
abstract
→ méthode sans implémentation, obligatoire à redéfinir. -
virtual
→ méthode avec une implémentation de base, mais redéfinissable. -
sealed override
→ empêche une classe dérivée de redéfinir à nouveau la méthode.
Veux-tu que je te fasse aussi un schéma clair qui montre les relations entre virtual
, abstract
, override
et sealed
?