Contenu du cours
C# au-delà des Bases
C# au-delà des Bases
Classes Dérivées
Quand nous disons qu'une classe est dérivée d'une autre classe, cela signifie qu'elle possède tous les champs et méthodes de la classe parente et en plus, la classe dérivée peut également contenir des champs et méthodes supplémentaires.
La syntaxe pour créer une classe héritée est la suivante:
index
// Base class (parent class) public class BaseClass { // Fields and methods of the base class } // Derived class (child class) public class DerivedClass : BaseClass { // Additional fields and methods specific to the derived class }
Voici un exemple avec du code concret :
index
using System; // Base class (parent class) public class Animal { public string Name; public void Eat() { Console.WriteLine($"{Name} is eating."); } } // Derived class (child class) public class Dog : Animal { public void Bark() { Console.WriteLine($"{Name} is barking."); } } class ConsoleApp { static void Main() { // Creating an instance of the derived class Dog myDog = new Dog(); myDog.Name = "Buddy"; // Using inherited method from the base class myDog.Eat(); // Using method specific to the derived class myDog.Bark(); } }
Dans cet exemple, Dog
est la classe dérivée, héritant de la classe de base Animal
. La classe Dog
a accès à la propriété Name
et à la méthode Eat
de la classe Animal
. De plus, elle introduit une nouvelle méthode, Bark
, qui est spécifique à la classe Dog
.
Comme illustré dans le diagramme, il peut y avoir des cas où une classe hérite d'une classe qui est déjà une classe d'une autre :
index
using System; // Base class public class Animal { public void Eat() { Console.WriteLine("Animal is eating."); } } // Intermediate class inheriting from Animal public class Mammal : Animal { public void GiveBirth() { Console.WriteLine("Mammal is giving birth."); } } // Derived class inheriting from Mammal public class Dog : Mammal { public void Bark() { Console.WriteLine("Dog is barking."); } } class Program { static void Main() { Dog myDog = new Dog(); // Methods from the base class myDog.Eat(); // Methods from the intermediate class myDog.GiveBirth(); // Methods from the derived class myDog.Bark(); } }
Dans un tel cas, la classe au niveau le plus élevé est appelée la Super Classe. Dans ce cas, Animal
est la super classe. Un tel cas où il y a plusieurs niveaux d'héritage est appelé Héritage Multi-Niveaux.
1. En C#, quel mot-clé ou symbole est utilisé pour déclarer une classe dérivée ?
2. Dans l'héritage multi-niveaux, comment s'appelle la classe au sommet ?
3. L'héritage multi-niveaux est-il possible en C# ?
Merci pour vos commentaires !