Partager via


Mot clé de base

Utilisez le base mot clé pour accéder aux membres de la classe de base à partir d’une classe dérivée. Utilisez-le si vous souhaitez :

  • Appelez une méthode sur la classe de base remplacée par une autre méthode.
  • Spécifiez le constructeur de classe de base à appeler lors de la création d’instances de la classe dérivée.

Vous pouvez accéder à la classe de base uniquement dans un constructeur, dans une méthode d’instance et dans un accesseur de propriété d’instance. L’utilisation du base mot clé à partir d’une méthode statique génère une erreur.

La documentation de référence du langage C# décrit la version la plus récente du langage C#. Il contient également la documentation initiale des fonctionnalités dans les préversions publiques pour la prochaine version du langage.

La documentation identifie toute fonctionnalité introduite en premier dans les trois dernières versions de la langue ou dans les préversions publiques actuelles.

Conseil / Astuce

Pour savoir quand une fonctionnalité a été introduite en C#, consultez l’article sur l’historique des versions du langage C#.

La classe de base que vous accédez est la classe de base que vous spécifiez dans la déclaration de classe. Par exemple, si vous spécifiez class ClassB : ClassA, vous accédez aux membres de ClassA à partir de ClassB, quelle que soit la classe de base de ClassA.

Dans cet exemple, la classe Person de base et la classe Employee dérivée ont une méthode nommée GetInfo. En utilisant le base mot clé, vous pouvez appeler la GetInfo méthode de la classe de base à partir de la classe dérivée.

public class Person
{
    protected string ssn = "444-55-6666";
    protected string name = "John L. Malgraine";

    public virtual void GetInfo()
    {
        Console.WriteLine($"Name: {name}");
        Console.WriteLine($"SSN: {ssn}");
    }
}
class Employee : Person
{
    public readonly string id = "ABC567EFG";
    public override void GetInfo()
    {
        // Calling the base class GetInfo method:
        base.GetInfo();
        Console.WriteLine($"Employee ID: {id}");
    }
}

class TestClass
{
    static void Main()
    {
        Employee E = new Employee();
        E.GetInfo();
    }
}
/*
Output
Name: John L. Malgraine
SSN: 444-55-6666
Employee ID: ABC567EFG
*/

Cet exemple montre comment spécifier le constructeur de classe de base à appeler lors de la création d’instances d’une classe dérivée.

public class BaseClass
{
    private int num;

    public BaseClass() => 
        Console.WriteLine("in BaseClass()");

    public BaseClass(int i)
    {
        num = i;
        Console.WriteLine("in BaseClass(int i)");
    }

    public int GetNum() => num;
}

public class DerivedClass : BaseClass
{
    // This constructor will call BaseClass.BaseClass()
    public DerivedClass() : base() { }

    // This constructor will call BaseClass.BaseClass(int i)
    public DerivedClass(int i) : base(i) { }

    static void Main()
    {
        DerivedClass md = new DerivedClass();
        DerivedClass md1 = new DerivedClass(1);
    }
}
/*
Output:
in BaseClass()
in BaseClass(int i)
*/

Pour plus d’exemples, consultez new, virtual et override.

Spécification du langage C#

Pour plus d’informations, consultez la spécification du langage C#. La spécification du langage est la source de référence pour la syntaxe C# et son utilisation.

Voir aussi