U ovom vodiču naučit ćete-
- Nasljeđivanje
- Polimorfizam
Što je nasljeđivanje u C #?
Nasljeđivanje je važan pojam u C #. Nasljeđivanje je koncept u kojem definirate satove roditelja i satove djece.
Podređene klase nasljeđuju metode i svojstva nadređene klase, ali istodobno mogu i modificirati ponašanje metoda ako je potrebno. Dijete klasa također može definirati vlastite metode ako je potrebno.
Bolje ćete razumjeti ako vidimo ovu akciju.
Pogledajmo sada kako možemo uključiti koncept nasljeđivanja u svoj kod.
Korak 1) Prvi korak je promjena koda za našu nastavnu klasu. U ovom koraku dodamo donji kod u datoteku Tutorial.cs.
Imajte na umu da sada moramo dodati modifikator pristupa 'protected' i u polje TutorialID i TutorialName.
Sjetimo se da smo spomenuti modifikator pristupa spomenuli u vodiču za Modifikator pristupa. Pa ovdje možete vidjeti svrhu imati ovo. Tek kada imate ovaj modifikator pristupa (zaštićen), podređena klasa može koristiti polja roditeljske klase.
Korak 2) Drugi korak je dodavanje nove klase podređenih. Naziv ove klase bit će "Guru99Tutorial". U ovom koraku dodamo donji kod u datoteku Tutorial.cs. Kôd treba staviti nakon definicije klase Tutorial.
Objašnjenje koda: -
- Prvi korak je stvaranje podređene klase Guru99Tutorial. Također moramo spomenuti da će ovaj razred biti podređeni razred nastave. To čini ključna riječ ':'.
- Dalje, definiramo metodu koja se naziva RenameTutorial. Upotrijebit će se za preimenovanje polja TutorialName. Ova metoda prihvaća varijablu niza koja sadrži novo ime Vodiča.
- Zatim smo polju TutorialName dodijelili parametar pNewName.
Napomena : - Iako nismo definirali polje TutorialName u klasi "Guru99Tutorial", i dalje možemo pristupiti ovom polju. To je zbog činjenice da je "Guru99Tutorial" podređena klasa Tutorial klase. A budući da smo polja klase Tutorial učinili zaštićenima, njima može pristupiti ova klasa.
Korak 3) Posljednji korak je izmjena naše glavne datoteke Program.cs. U našoj konzoli napravit ćemo objekt klase Guru99Tutorial. S ovim objektom pozvat ćemo RenameTutorial metodu. Zatim ćemo prikazati polje TutorialName uz pomoć metode 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();}}}
Objašnjenje koda: -
- Prvi korak je stvaranje objekta za klasu Guru99Tutorial. To se postiže pomoću ključne riječi 'new'. Imajte na umu da ovaj put ne stvaramo objekt klase Tutorial.
- Za promjenu polja TutorialName koristimo metodu RenameTutorial klase Guru99Tutorial. Niz ".Net by Guru99" prosljeđujemo metodi RenameTutorial.
- Zatim pozivamo metodu GetTutorial. Imajte na umu da iako ova metoda nije definirana u klasi Guru99Tutorial, i dalje možemo pristupiti ovoj metodi. Izlaz metode GetTutorial zatim se prikazuje na konzoli putem metode Console.WriteLine.
Ako se gornji kôd unese pravilno i program se uspješno izvrši, prikazat će se sljedeći izlaz.
Izlaz:
Iz rezultata možemo jasno vidjeti da je polje TutorialName preimenovano u ".Net by Guru99". To je omogućeno metodom RenameTutorial koju je pozvala podređena klasa.
Što je polimorfizam u C #?
Polimorfizam je koncept OOP-a gdje jedno ime može imati više oblika.
Na primjer, imate pametni telefon za komunikaciju. Način komunikacije koji odaberete može biti bilo što. To može biti poziv, tekstualna poruka, slikovna poruka, pošta itd. Dakle, zajednički je cilj komunikacija, ali njihov je pristup drugačiji. To se naziva polimorfizam.
Bolje ćete razumjeti ako vidimo ovu akciju.
Pogledajmo sada, kako možemo uključiti koncept polimorfizma u svoj kod.
Korak 1) Prvi korak je promjena koda za našu nastavnu klasu. U ovom koraku dodamo donji kod u datoteku Tutorial.cs.
Objašnjenje koda: -
1 i 2) Prvi je korak isti kao u našim ranijim primjerima. Zadržavamo definiciju metode SetTutorial kakva jest.
3) Ova metoda postavlja TutorialID i TutorialName na temelju parametara pID i pName.
4) Ovdje vršimo promjenu klase u koju dodajemo novu metodu s istim imenom SetTutorial. Samo što ovaj put prenosimo samo jedan parametar koji je pName. Ovom metodom samo postavljamo polje TutorialName na pName.
Korak 2) Posljednji korak je izmjena naše glavne datoteke Program.cs. U našoj konzoli napravit ćemo objekt klase 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();}}}
Objašnjenje koda: -
- U prvom koraku koristimo metodu SetTutorial s 2 parametra. Tamo gdje prosljeđujemo i TutorialID i TutorialName ovoj metodi.
- U drugom koraku sada pozivamo metodu SetTutorial sa samo jednim parametrom. Upravo prosljeđujemo TutorialName ovoj metodi.
Ako se gornji kôd pravilno unese i program pokrene, prikazat će se sljedeći izlaz. Ako u slučaju da ste željeli također dohvatiti ID vodiča zajedno s nazivom vodiča, slijedite donji korak
- Stvorite zasebnu metodu pod nazivom public int GetTutorialID
- U toj metodi napišite liniju koda "return TutorialID". To se može koristiti za vraćanje TutorialID-a u pozivni program.
Izlaz:
Iz rezultata možemo jasno vidjeti da su obje metode uspješno pozvane. Zbog toga su na konzolu poslani nizovi "Prvi vodič" i "Drugi vodič".
Sažetak
- Nasljeđivanje je mjesto gdje podređena klasa nasljeđuje polja i metode nadređene klase. Dijete klasa tada također može definirati vlastite metode.
- Polimorfizam je koncept OOP-a gdje jedno ime može imati više oblika.