Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Langue C

Héritage et polymorphisme C # avec des exemples de programmes

Qu'est-ce que l'héritage en C# ?

Héritage est un concept important de C#. L'héritage est un concept dans lequel vous définissez des classes parent et des classes enfant. Les classes enfants héritent des méthodes et des propriétés de la classe parent, mais en même temps, elles peuvent également modifier le comportement des méthodes si nécessaire. La classe enfant peut également définir ses propres méthodes si nécessaire.

Dans ce didacticiel C#, vous apprendrez-

Comprenons mieux l'héritage C# par un exemple de programme :

Exemple d'héritage C#

Voyons maintenant comment intégrer le concept d'héritage dans notre code.

Étape 1) La première étape consiste à modifier le code de notre classe Tutoriel. Dans cette étape, nous ajoutons le code ci-dessous au fichier Tutorial.cs.

Notez que nous devons maintenant ajouter le modificateur d'accès "protégé" aux champs TutorialID et TutorialName.

N'oubliez pas que nous avions mentionné ce modificateur d'accès dans le didacticiel sur le modificateur d'accès. Eh bien ici, vous pouvez voir le but d'avoir cela. Ce n'est que lorsque vous avez ce modificateur d'accès (protégé) que la classe enfant pourra utiliser les champs de la classe parent.

Étape 2) La deuxième étape consiste à ajouter notre nouvelle classe enfant. Le nom de cette classe sera "Guru99Tutorial". Dans cette étape, nous ajoutons le code ci-dessous au fichier Tutorial.cs. Le code doit être placé après la définition de la classe Tutoriel.

Explication du code :-

  1. La première étape consiste à créer la classe enfant Guru99Tutorial. Nous devons également mentionner que cette classe sera une classe enfant de la classe Tutoriel. Ceci est fait par le mot-clé ‘:’.
  2. Ensuite, nous définissons une méthode appelée RenameTutorial. Il sera utilisé pour renommer le champ TutorialName. Cette méthode accepte une variable chaîne qui contient le nouveau nom du didacticiel.
  3. Nous avons ensuite attribué le paramètre pNewName au champ TutorialName.
    Remarque :– Même si nous n'avons pas défini le champ TutorialName dans la classe « Guru99Tutorial », nous pouvons toujours accéder à ce champ. Cela est dû au fait que "Guru99Tutorial" est une classe enfant de la classe Tutorial. Et parce que nous avons fait en sorte que les champs de la classe Tutoriel soient protégés, ils sont accessibles par cette classe.

Étape 3) La dernière étape consiste à modifier notre fichier principal Program.cs. Dans notre application console, nous allons créer un objet de la classe Guru99Tutorial. Avec cet objet, nous allons appeler la méthode RenameTutorial. Nous allons ensuite afficher le champ TutorialName à l'aide de la méthode GetTutorial.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 public class Tutorial
 {
  protected int TutorialID; 
  protected string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  
  public String GetTutorial()
  {
   return TutorialName;
  }
 }
  public class Guru99Tutorial:Tutorial
  {
   public void RenameTutorial(String pNewName)
   {
    TutorialName=pNewName;
   }
  
  static void Main(string[] args) 
  {
   Guru99Tutorial pTutor=new Guru99Tutorial();
   
   pTutor.RenameTutorial(".Net by Guru99");
    
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Explication du code :-

  1. La première étape consiste à créer un objet pour la classe Guru99Tutorial. Cela se fait via le mot-clé "nouveau". Notez que cette fois nous ne créons pas un objet de la classe Tutoriel.
  2. Nous utilisons la méthode RenameTutorial de la classe Guru99Tutorial pour modifier le champ TutorialName. Nous passons la chaîne ".Net by Guru99" à la méthode RenameTutorial.
  3. Nous appelons ensuite la méthode GetTutorial. Notez que même si cette méthode n'est pas définie dans la classe Guru99Tutorial, nous pouvons toujours accéder à cette méthode. La sortie de la méthode GetTutorial est ensuite affichée sur la console via la méthode Console.WriteLine.

Si le code ci-dessus est entré correctement et que le programme est exécuté avec succès, la sortie suivante s'affichera.

Sortie :

À partir de la sortie, nous pouvons clairement voir que le champ TutorialName a été renommé «.Net par Guru99». Cela a été rendu possible par la méthode RenameTutorial appelée par la classe enfant.

Qu'est-ce que le polymorphisme en C# ?

Polymorphisme en C # est un concept de POO où un nom peut avoir plusieurs formes. Par exemple, vous avez un smartphone pour communiquer. Le mode de communication que vous choisissez peut être n'importe quoi. Il peut s'agir d'un appel, d'un message texte, d'un message photo, d'un courrier, etc. Donc, l'objectif est commun, c'est-à-dire la communication, mais leur approche est différente. C'est ce qu'on appelle le polymorphisme.

Vous obtiendrez une meilleure compréhension du polymorphisme C# grâce à l'exemple de programme ci-dessous :

Exemple de polymorphisme C#

Voyons maintenant comment intégrer le concept de polymorphisme dans notre code.

Étape 1) La première étape consiste à modifier le code de notre classe Tutoriel. Dans cette étape, nous ajoutons le code ci-dessous au fichier Tutorial.cs.

Explication du code :-

1 &2) La première étape est la même que dans nos exemples précédents. Nous gardons la définition de la méthode SetTutorial telle quelle.

3) Cette méthode définit le TutorialID et le TutorialName en fonction des paramètres pID et pName.

4) C'est ici que nous apportons une modification à notre classe dans laquelle nous ajoutons une nouvelle méthode portant le même nom que SetTutorial. Seulement cette fois, nous ne transmettons qu'un seul paramètre qui est le pName. Dans cette méthode, nous définissons simplement le champ de TutorialName sur pName.

Étape 2) La dernière étape consiste à modifier notre fichier principal Program.cs. Dans notre application console, nous allons créer un objet de la classe Guru99Tutorial.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Tutorial
 {
  public int TutorialID; 
  public string TutorialName;
  
  public void SetTutorial(int pID,string pName) 
  {
   TutorialID=pID;
   TutorialName=pName;
  }
  public void SetTutorial(string pName) 
  {
   TutorialName=pName;
  }
  public String GetTutorial()
  {
   return TutorialName;
  }
  
  static void Main(string[] args) 
  {
   Tutorial pTutor=new Tutorial();
   
   pTutor.SetTutorial(1,"First Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
   
   pTutor.SetTutorial("Second Tutorial");
   Console.WriteLine(pTutor.GetTutorial());
    
   Console.ReadKey(); 
  }
 }
}

Explication du code :-

  1. Dans la première étape, nous utilisons la méthode SetTutorial avec 2 paramètres. Où nous transmettons à la fois TutorialID et TutorialName à cette méthode.
  2. Dans la deuxième étape, nous appelons maintenant la méthode SetTutorial avec un seul paramètre. Nous transmettons simplement le TutorialName à cette méthode.

Si le code ci-dessus est entré correctement et que le programme est exécuté, la sortie suivante s'affichera. Si vous souhaitez également récupérer l'ID du didacticiel avec le nom du didacticiel, vous devez suivre l'étape ci-dessous

  1. Créez une méthode distincte appelée public int GetTutorialID
  2. Dans cette méthode, écrivez la ligne de code "return TutorialID". Cela peut être utilisé pour renvoyer le TutorialID au programme appelant.

Sortie :

À partir de la sortie, nous pouvons clairement voir que les deux méthodes ont été appelées avec succès. Pour cette raison, les chaînes "First Tutorial" et "Second Tutorial" ont été envoyées à la console.

Résumé


Langue C

  1. Expressions, instructions et blocs C# (avec exemples)
  2. Classe et objet C#
  3. Classe abstraite et méthode C#
  4. Classe partielle C# et méthode partielle
  5. Classe et méthode scellées C#
  6. Fonctions C++ avec exemples de programmes
  7. Différence entre structure et classe :expliquée avec un exemple C++
  8. Différence entre while et do-while :expliquée avec des exemples
  9. type() et isinstance() en Python avec des exemples