C# Language Appel du constructeur de la classe de base


Exemple

Un constructeur d'une classe de base est appelé avant qu'un constructeur d'une classe dérivée ne soit exécuté. Par exemple, si Mammal étend Animal , le code contenu dans le constructeur de Animal est appelé en premier lors de la création d'une instance de Mammal .

Si une classe dérivée ne spécifie pas explicitement quel constructeur de la classe de base doit être appelé, le compilateur assume le constructeur sans paramètre.

public class Animal
{
    public Animal() { Console.WriteLine("An unknown animal gets born."); }
    public Animal(string name) { Console.WriteLine(name + " gets born"); }
}

public class Mammal : Animal
{
    public Mammal(string name)
    {
        Console.WriteLine(name + " is a mammal.");
    }
}

Dans ce cas, l’instanciation d’un Mammal en appelant un new Mammal("George the Cat") imprimera

Un animal inconnu naît.
George le chat est un mammifère.

Voir la démo

L'appel d'un constructeur différent de la classe de base se fait en plaçant : base(args) entre la signature du constructeur et son corps:

public class Mammal : Animal
{
    public Mammal(string name) : base(name)
    {
        Console.WriteLine(name + " is a mammal.");
    }
}

Appeler un new Mammal("George the Cat") va maintenant imprimer:

George le chat naît.
George le chat est un mammifère.

Voir la démo