În acest tutorial, veți învăța-
- Moştenire
- Polimorfism
Ce este Moștenirea în C #?
Moștenirea este un concept important în C #. Moștenirea este un concept în care definiți clasele de părinți și clasele de copii.
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, de asemenea, defini metode proprii, dacă este necesar.
Veți obține o mai bună înțelegere dacă vom vedea această acțiune.
Să vedem acum cum putem încorpora conceptul de moștenire în codul nostru.
Pasul 1) Primul pas este modificarea codului pentru clasa noastră de Tutorial. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs.
Rețineți că trebuie să adăugăm acum modificatorul de acces „protejat” atât în câmpul TutorialID, cât și în câmpul TutorialName.
Amintiți-vă că am menționat acest modificator de acces în tutorialul Modificator de acces. Ei bine, aici puteți vedea scopul de a avea acest lucru. Numai când aveți acest modificator de acces (protejat), clasa copil poate folosi câmpurile clasei părinte.
Pasul 2) Al doilea pas este să adăugăm noua noastră clasă de copii. 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.
Cod Explicație: -
- Primul pas este crearea clasei de copii Guru99Tutorial. De asemenea, trebuie să menționăm că această clasă va fi o clasă pentru copii din clasa Tutorial. Acest lucru se face prin cuvântul cheie „:”.
- În continuare, definim o metodă numită RenameTutorial. Acesta 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.
Notă : - Chiar dacă nu am definit câmpul TutorialName în clasa „Guru99Tutorial”, totuși putem accesa acest câmp. Acest lucru se datorează faptului că „Guru99Tutorial” este o clasă pentru copii din clasa Tutorial. Și pentru că am făcut ca câmpurile clasei Tutorial să fie protejate, acestea pot fi accesate de această clasă.
Pasul 3) Ultimul pas este modificarea fișierului nostru principal Program.cs. În aplicația noastră de consolă, vom face un obiect din clasa Guru99Tutorial. Cu acest obiect, vom apela metoda RenameTutorial. Vom afișa apoi 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{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();}}}
Cod Explicație: -
- Primul pas este crearea unui obiect pentru clasa Guru99Tutorial. Acest lucru se face prin intermediul cuvântului cheie „nou”. Rețineți că de data aceasta nu creăm un obiect din clasa Tutorial.
- Folosim metoda RenameTutorial a clasei Guru99Tutorial pentru a schimba câmpul TutorialName. Trecem șirul „.Net by Guru99” la metoda RenameTutorial.
- Apelăm apoi la metoda GetTutorial. Rețineți că, deși această metodă nu este definită în clasa Guru99Tutorial, totuși putem accesa această metodă. Ieșirea metodei GetTutorial este apoi afișată în consolă prin metoda 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 Guru99”. Acest lucru a fost posibil prin metoda RenameTutorial apelată de clasa copil.
Ce este polimorfismul în C #?
Polimorfismul este un concept OOP în care un singur nume poate avea mai multe forme.
De exemplu, aveți un smartphone pentru comunicare. Modul de comunicare pe care îl alegeți ar putea fi orice. Poate fi un apel, un mesaj text, un mesaj ilustrat, poștă 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 dacă vom vedea această acțiune.
Să vedem acum cum putem încorpora conceptul de polimorfism în codul nostru.
Pasul 1) Primul pas este modificarea codului pentru clasa noastră de Tutorial. În acest pas, adăugăm codul de mai jos în fișierul Tutorial.cs.
Cod Explicație: -
1 și 2) Primul pas este același ca în exemplele noastre anterioare. Păstrăm definiția metodei SetTutorial așa cum este.
3) Această metodă setează TutorialID și TutorialName pe baza parametrilor pID și pName.
4) Aici facem o schimbare la clasa noastră în care adăugăm o nouă metodă cu același nume de SetTutorial. Numai de data aceasta trecem doar un parametru care este pName. În această metodă, setăm doar câmpul TutorialName la pName.
Pasul 2) Ultimul pas este modificarea fișierului nostru principal Program.cs. În aplicația noastră de consolă, vom face un obiect din clasa 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();}}}
Cod Explicație: -
- În primul pas, folosim metoda SetTutorial cu 2 parametri. Unde trecem atât TutorialID, cât și TutorialName la această metodă.
- În al doilea pas, apelăm acum metoda SetTutorial cu un singur parametru. Trecem doar TutorialName la această metodă.
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ă preluaț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 această metodă, scrieți linia de cod „returnează TutorialID”. Aceasta poate fi utilizată pentru a returna ID-ul Tutorial la programul de apelare.
Ieșire:
Din rezultat, putem vedea clar că ambele metode au fost numite cu succes. Din acest motiv, șirurile „Primul tutorial” și „Al doilea tutorial” au fost trimise la consolă.
rezumat
- Moștenirea este locul în care o clasă copil moștenește câmpurile și metodele clasei părinte. Clasa copil poate apoi să-și definească propriile metode.
- Polimorfismul este un concept OOP în care un singur nume poate avea mai multe forme.