Moștenirea C# și polimorfismul cu exemple de programe
⚡ Rezumat inteligent
Moștenirea și polimorfismul în C# sunt două principii fundamentale orientate pe obiecte. Moștenirea permite unei clase copil să reutilizeze câmpurile și metodele unei clase părinte, în timp ce polimorfismul permite unui nume de metodă să ia mai multe forme.
Ce este moștenirea în C#?
Moştenire este un concept important de C#. Moștenirea este un concept în care definiți clasele părinte și clasele copil. Clasele copil moștenesc metode și proprietăți ale clasei părinte, dar, în același timp, pot modifica și comportamentul metodelor dacă este necesar. Clasa copil poate defini și metode proprii, dacă este necesar.
Să înțelegem mai bine moștenirea C# printr-un exemplu de program:
Exemplu de moștenire C#
Să vedem acum cum putem încorpora conceptul de moștenire în codul nostru.
Pas 1) Primul pas este schimbarea codului pentru clasa noastră Tutorial. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs.
Rețineți că acum trebuie să adăugăm modificatorul de acces „protejat” atât în câmpul TutorialID, cât și în TutorialName.
Rețineți că am menționat acest modificator de acces în Tutorial Modificator de accesEi bine, aici puteți vedea scopul acestei utilizări. Numai atunci când aveți acest modificator de acces (protejat), clasa fiu va putea utiliza câmpurile clasei părinte.
Pas 2) Al doilea pas este să adăugăm noua noastră clasă copil. Numele acestei clase va fi „Guru99Tutorial”. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs. Codul trebuie plasat după definiția clasei Tutorial.
Code Explicaţie:-
- Primul pas este crearea GuruClasa fiu 99Tutorial. De asemenea, trebuie să menționăm că această clasă va fi o clasă fiu a clasei Tutorial. Acest lucru se face cu ajutorul cuvântului cheie ':'.
- În continuare, definim o metodă numită RenameTutorial. Va fi folosit pentru a redenumi câmpul TutorialName. Această metodă acceptă o variabilă șir care conține noul nume al Tutorialului.
- Apoi am atribuit parametrul pNewName câmpului TutorialName. notițeChiar dacă nu am definit câmpul TutorialName în „Guruclasa 99Tutorial”, putem accesa în continuare acest câmp. Acest lucru se datorează faptului că „Guru„99Tutorial” este o clasă fiică a clasei Tutorial. Și pentru că am făcut câmpurile clasei Tutorial protejate, acestea pot fi accesate de această clasă.
Pas 3) Ultimul pas este modificarea fișierului nostru principal Program.cs. În aplicația noastră de consolă, vom crea un obiect din GuruClasa 99Tutorial. Cu acest obiect, vom apela metoda RenameTutorial. Apoi vom afișa câmpul TutorialName cu ajutorul metodei 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(); } } }
Code Explicaţie:-
- Primul pas este crearea unui obiect pentru GuruClasa 99Tutorial. Acest lucru se face prin intermediul cuvântului cheie „new”. Rețineți că de data aceasta nu creăm un obiect al clasei Tutorial.
- Folosim metoda RenameTutorial a GuruClasa 99Tutorial pentru a modifica câmpul TutorialName. Transmitem șirul „.Net by Guru99” către metoda RenameTutorial.
- Apoi apelăm metoda GetTutorial. Rețineți că, deși această metodă nu este definită în GuruÎn clasa 99Tutorial, putem accesa în continuare această metodă. Rezultatul metodei GetTutorial este apoi afișat în consolă prin intermediul metodei Console.WriteLine.
Dacă codul de mai sus este introdus corect și programul este executat cu succes, va fi afișată următoarea ieșire.
ieșire:
Din rezultat, putem vedea clar că câmpul TutorialName a fost redenumit în „.Net de către Guru99”. Acest lucru a fost posibil datorită metodei RenameTutorial apelate de clasa fiu.
Ce este polimorfismul în C#?
polimorfismul in C# este un concept de POO în care un nume poate avea mai multe forme. De exemplu, aveți un smartphone pentru comunicare. Modul de comunicare pe care îl alegeți poate fi orice. Poate fi un apel, un mesaj text, un mesaj ilustrat, un e-mail etc. Deci, scopul este comun, adică comunicarea, dar abordarea lor este diferită. Aceasta se numește polimorfism.
Veți obține o mai bună înțelegere a polimorfismului C# prin exemplul de program de mai jos:
Exemplu de polimorfism C#
Să vedem acum cum putem încorpora conceptul de polimorfism în codul nostru.
Pas 1) Primul pas este schimbarea codului pentru clasa noastră Tutorial. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs.
Code Explicaţie:-
1 și 2) Primul pas este același ca în exemplele noastre anterioare. Suntem ținuțiping definiția metodei SetTutorial așa cum este ea.
3) Această metodă setează TutorialID și TutorialName pe baza parametrilor pID și pName.
4) Aici facem o schimbare în clasa noastră în care adăugăm o nouă metodă cu același nume de SetTutorial. Numai că de data aceasta trecem doar un parametru, care este pName. În această metodă, doar setăm câmpul TutorialName la pName.
Pas 2) Ultimul pas este modificarea fișierului nostru principal Program.cs. În aplicația noastră de consolă, vom crea un obiect din Guru99Tutorial clasă.
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(); } } }
Code Explicaţie:-
- În primul pas, folosim metoda SetTutorial cu 2 parametri. Unde trecem atât TutorialID cât și TutorialName acestei metode.
- În al doilea pas, apelăm acum metoda SetTutorial cu un singur parametru. Doar trecem TutorialName acestei metode.
Dacă codul de mai sus este introdus corect și programul este rulat, va fi afișată următoarea ieșire. Dacă în cazul în care doriți să obțineți și ID-ul tutorialului împreună cu numele tutorialului, ar trebui să urmați pasul de mai jos
- Creați o metodă separată numită public int GetTutorialID
- În acea metodă scrieți linia de cod „return TutorialID”. Acesta poate fi folosit pentru a returna TutorialID programului apelant.
ieșire:
Din rezultat, putem vedea clar că ambele metode au fost apelate cu succes. Din acest motiv, șirurile „Primul Tutorial” și „Al doilea Tutorial” au fost trimise la consolă.








