Héritage C # & Polymorphisme avec des exemples

Table des matières:

Anonim

Dans ce didacticiel, vous apprendrez-

  • Héritage
  • Polymorphisme

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

L'héritage est un concept important en C #. L'héritage est un concept dans lequel vous définissez des classes parentes et des classes enfants.

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.

Vous obtiendrez une meilleure compréhension si nous voyons cette action.

Voyons maintenant comment nous pouvons incorporer le concept d'héritage dans notre code.

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

Notez que nous devons maintenant ajouter le modificateur d'accès «protected» aux champs TutorialID et TutorialName.

N'oubliez pas que nous avons 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 disposez de 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 Tutorial.

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 Tutorial. 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 sommes toujours en mesure d'accéder à ce champ. Ceci est dû au fait que "Guru99Tutorial" est une classe enfant de la classe Tutorial. Et comme nous avons rendu les champs de la classe Tutorial 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{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 d'objet de la classe Tutorial.
  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 sommes toujours en mesure d'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 sera affichée.

Production:

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

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

Le polymorphisme est un concept de POO où un nom peut avoir plusieurs formes.

Par exemple, vous disposez d'un smartphone pour la communication. Le mode de communication que vous choisissez peut être n'importe quoi. Cela peut être un appel, un message texte, un message photo, un courrier électronique, etc. Donc, l'objectif est commun qui est la communication, mais leur approche est différente. C'est ce qu'on appelle le polymorphisme.

Vous obtiendrez une meilleure compréhension si nous voyons cette action.

Voyons maintenant comment nous pouvons incorporer le concept de polymorphisme dans notre code.

Étape 1) La première étape consiste à modifier le code de notre classe Tutorial. 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 conservons 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 là que nous apportons une modification à notre classe dans laquelle nous ajoutons une nouvelle méthode avec le même nom de SetTutorial. Seulement cette fois, nous ne passons 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 un premier temps, nous utilisons la méthode SetTutorial avec 2 paramètres. Où nous transmettons à la fois le TutorialID et le 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 sera affichée. 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.

Production:

À 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 «Premier tutoriel» et «Deuxième tutoriel» ont été envoyées à la console.

Résumé

  • L'héritage est l'endroit où une classe enfant hérite des champs et des méthodes de la classe parent. La classe enfant peut alors également définir ses propres méthodes.
  • Le polymorphisme est un concept de POO où un nom peut avoir plusieurs formes.