C# Language Extension d'une classe de base abstraite


Exemple

Contrairement aux interfaces, qui peuvent être décrites comme des contrats d’implémentation, les classes abstraites servent de contrats d’extension.

Une classe abstraite ne peut pas être instanciée, elle doit être étendue et la classe résultante (ou la classe dérivée) peut être instanciée.

Les classes abstraites sont utilisées pour fournir des implémentations génériques

public abstract class Car
{
    public void HonkHorn() {
        // Implementation of horn being honked
    }
}

public class Mustang : Car
{
    // Simply by extending the abstract class Car, the Mustang can HonkHorn()
    // If Car were an interface, the HonkHorn method would need to be included
    // in every class that implemented it.
}

L'exemple ci-dessus montre comment toute classe qui étend sa voiture recevra automatiquement la méthode HonkHorn avec l'implémentation. Cela signifie que tout développeur qui crée une nouvelle voiture n'aura pas à se soucier de la façon dont il va klaxonner.