C# nasljeđivanje i polimorfizam s primjerima programa
⚡ Pametni sažetak
Nasljeđivanje i polimorfizam u C# su dva osnovna objektno orijentirana principa. Nasljeđivanje omogućuje podređenoj klasi ponovnu upotrebu polja i metoda roditeljske klase, dok polimorfizam omogućuje da jedno ime metode poprimi mnogo oblika.

Što je nasljeđivanje u C#?
Nasljeđivanje je važan koncept C#. Nasljeđivanje je koncept u kojem definirate roditeljske klase i podređene klase. Podređene klase nasljeđuju metode i svojstva nadređene klase, ali u isto vrijeme mogu i modificirati ponašanje metoda ako je potrebno. Klasa dijete također može definirati vlastite metode ako je potrebno.
Hajdemo bolje razumjeti C# nasljeđivanje pomoću primjera programa:
Primjer nasljeđivanja C#
Pogledajmo sada kako možemo ugraditi koncept nasljeđivanja u naš kod.
Korak 1) Prvi korak je promjena koda za našu klasu Tutorial. U ovom koraku dodajemo donji kod u datoteku Tutorial.cs.
Imajte na umu da sada moramo dodati modifikator pristupa 'protected' u polje TutorialID i TutorialName.
Sjetite se da smo spomenuli ovaj modifikator pristupa u Vodič za modifikator pristupaPa, ovdje možete vidjeti svrhu ovoga. Samo kada imate ovaj modifikator pristupa (zaštićen), podređena klasa može koristiti polja roditeljske klase.
Korak 2) Drugi korak je dodavanje naše nove podređene klase. Naziv ove klase bit će „Guru99Tutorial”. U ovom koraku dodajemo donji kod u datoteku Tutorial.cs. Kod treba smjestiti nakon definicije klase Tutorial.
Code Obrazloženje:-
- Prvi korak je stvaranje Guru99Podređena klasa Tutorial. Također moramo spomenuti da će ova klasa biti podređena klasa Tutorial. To se postiže ključnom riječi ':'.
- Zatim definiramo metodu koja se zove RenameTutorial. Koristit će se za preimenovanje polja TutorialName. Ova metoda prihvaća varijablu niza koja sadrži novi naziv vodiča.
- Zatim smo dodijelili parametar pNewName polju TutorialName. bilješke: – Iako nismo definirali polje TutorialName u "Guru99Tutorial” razred, još uvijek možemo pristupiti ovom polju. To je zbog činjenice da “Guru„99Tutorial“ je podređena klasa klase Tutorial. A budući da smo polja klase Tutorial učinili zaštićenima, ova klasa im može pristupiti.
Korak 3) Posljednji korak je izmjena naše glavne datoteke Program.cs. U našoj konzolnoj aplikaciji napravit ćemo objekt GuruKlasa 99Tutorial. S ovim objektom pozvat ćemo metodu RenameTutorial. 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 { 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 Obrazloženje:-
- Prvi korak je stvaranje objekta za GuruKlasa 99Tutorial. To se radi putem ključne riječi 'new'. Imajte na umu da ovaj put ne stvaramo objekt klase Tutorial.
- Koristimo metodu RenameTutorial od Guru99Tutorial klasa za promjenu polja TutorialName. Prosljeđujemo niz ".Net by Guru99” metodi RenameTutorial.
- Zatim pozivamo metodu GetTutorial. Imajte na umu da iako ova metoda nije definirana u GuruU klasi 99Tutorial, još uvijek možemo pristupiti ovoj metodi. Izlaz metode GetTutorial zatim se prikazuje u konzoli putem metode Console.WriteLine.
Ako se gornji kod ispravno unese i program se uspješno izvede, prikazat će se sljedeći izlaz.
Izlaz:
Iz izlaza jasno možemo vidjeti da je polje TutorialName preimenovano u „.Net od strane Guru99”. To je omogućeno metodom RenameTutorial koju je pozvala podređena klasa.
Što je polimorfizam u C#?
polimorfizam in C# je OOP koncept gdje jedno ime može imati mnogo 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, cilj je zajednički, odnosno komunikacija, ali njihov pristup je drugačiji. To se naziva polimorfizam.
Dobit ćete bolje razumijevanje C# polimorfizma pomoću donjeg primjera programa:
Primjer C# polimorfizma
Pogledajmo sada kako možemo ugraditi koncept polimorfizma u naš kod.
Korak 1) Prvi korak je promjena koda za našu klasu Tutorial. U ovom koraku dodajemo donji kod u datoteku Tutorial.cs.
Code Obrazloženje:-
1 i 2) Prvi korak je isti kao u našim ranijim primjerima. Zadržavamoping definicija metode SetTutorial kakva jest.
3) Ova metoda postavlja TutorialID i TutorialName na temelju parametara pID i pName.
4) Ovo je mjesto gdje vršimo promjenu u našoj klasi pri čemu dodajemo novu metodu s istim imenom SetTutorial. Samo ovaj put prosljeđujemo samo jedan parametar koji je pName. U ovoj metodi samo postavljamo polje TutorialName na pName.
Korak 2) Posljednji korak je izmjena naše glavne datoteke Program.cs. U našoj konzolnoj aplikaciji napravit ćemo objekt Guru99Tutorijal.
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 Obrazloženje:-
- U prvom koraku koristimo metodu SetTutorial s 2 parametra. Gdje ovoj metodi prosljeđujemo i TutorialID i TutorialName.
- U drugom koraku sada pozivamo metodu SetTutorial sa samo jednim parametrom. Ovoj metodi samo prosljeđujemo TutorialName.
Ako se gornji kod ispravno unese i program se pokrene, prikazat će se sljedeći izlaz. Ako u slučaju da želite također dohvatiti ID vodiča zajedno s nazivom vodiča, trebali biste slijediti korak u nastavku
- Stvorite zasebnu metodu pod nazivom public int GetTutorialID
- U toj metodi napišite redak koda "vrati TutorialID." Ovo se može koristiti za vraćanje TutorialID-a pozivajućem programu.
Izlaz:
Iz izlaza možemo jasno vidjeti da su obje metode uspješno pozvane. Zbog toga su nizovi "First Tutorial" i "Second Tutorial" poslani na konzolu.







