C # Dedovanje & Polimorfizem s primeri

Kazalo:

Anonim

V tej vadnici boste izvedeli-

  • Dedovanje
  • Polimorfizem

Kaj je dedovanje v C #?

Dedovanje je pomemben koncept v C #. Dedovanje je koncept, v katerem definirate nadrejene razrede in podrejene razrede.

Podrejeni razredi podedujejo metode in lastnosti nadrejenega razreda, hkrati pa lahko po potrebi tudi spremenijo vedenje metod. Podrejeni razred lahko po potrebi določi tudi lastne metode.

Če bomo videli to dejanje, boste bolje razumeli.

Poglejmo zdaj, kako lahko koncept dedovanja vključimo v svojo kodo.

1. korak) Prvi korak je spremeniti kodo za naš razred Vadnice. V tem koraku v datoteko Tutorial.cs dodamo spodnjo kodo.

Upoštevajte, da moramo zdaj v polje TutorialID in TutorialName dodati modifikator dostopa za 'protected'.

Ne pozabite, da smo ta modifikator dostopa omenili v vadnici Access Modifier. No, tukaj lahko vidite namen tega. Šele ko imate ta modifikator dostopa (zaščiten), lahko podrejeni razred uporablja polja nadrejenega razreda.

2. korak) Drugi korak je dodati naš novi otroški razred. Ime tega predavanja bo "Guru99Tutorial". V tem koraku v datoteko Tutorial.cs dodamo spodnjo kodo. Kodo je treba postaviti za definicijo razreda Vadnice.

Pojasnilo kode: -

  1. Prvi korak je ustvariti otroški razred Guru99Tutorial. Omeniti moramo tudi, da bo ta razred podrejen razredu Tutorial. To naredi ključna beseda ':'.
  2. Nato definiramo metodo, imenovano RenameTutorial. Uporabil se bo za preimenovanje polja TutorialName. Ta metoda sprejema nizovno spremenljivko, ki vsebuje novo ime vadnice.
  3. Nato smo polju TutorialName dodelili parameter pNewName.

    Opomba : - Čeprav v razredu "Guru99Tutorial" nismo definirali polja TutorialName, še vedno lahko dostopamo do tega polja. Razlog za to je, da je "Guru99Tutorial" podrejeni razred učbeništva. In ker smo naredili polja razreda Vadnica zaščitena, lahko do njih dostopa ta razred.

3. korak) Zadnji korak je sprememba naše glavne datoteke Program.cs. V naši konzolni aplikaciji bomo naredili objekt razreda Guru99Tutorial. S tem objektom bomo poklicali metodo RenameTutorial. Nato bomo s pomočjo metode GetTutorial prikazali polje TutorialName.

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();}}}

Pojasnilo kode: -

  1. Prvi korak je ustvariti objekt za razred Guru99Tutorial. To se naredi s pomočjo ključne besede 'new'. Upoštevajte, da tokrat ne ustvarjamo predmeta razreda Vadnica.
  2. Za spreminjanje polja TutorialName uporabljamo metodo RenameTutorial razreda Guru99Tutorial. Niz ".Net by Guru99" posredujemo metodi RenameTutorial.
  3. Nato pokličemo metodo GetTutorial. Čeprav ta metoda ni definirana v razredu Guru99Tutorial, še vedno lahko dostopamo do te metode. Izhod metode GetTutorial se nato prikaže na konzoli prek metode Console.WriteLine.

Če je zgornja koda pravilno vnesena in se program uspešno izvede, se prikaže naslednji izhod.

Izhod:

Iz izhoda lahko jasno razberemo, da je bilo polje TutorialName preimenovano v ".Net s strani Guru99". To je omogočila metoda RenameTutorial, ki jo je poklical podrejeni razred.

Kaj je polimorfizem v jeziku C #?

Polimorfizem je koncept OOP, kjer ima lahko eno ime več oblik.

Na primer, imate pametni telefon za komunikacijo. Način komunikacije, ki ga izberete, je lahko karkoli. To je lahko klic, besedilno sporočilo, slikovno sporočilo, pošta itd. Cilj je torej skupna komunikacija, vendar je njihov pristop drugačen. To se imenuje polimorfizem.

Če bomo videli to dejanje, boste bolje razumeli.

Poglejmo zdaj, kako lahko v svojo kodo vključimo koncept polimorfizma.

1. korak) Prvi korak je spremeniti kodo za naš razred Vadnice. V tem koraku v datoteko Tutorial.cs dodamo spodnjo kodo.

Pojasnilo kode: -

1 in 2) Prvi korak je enak kot v naših prejšnjih primerih. Definicijo metode SetTutorial ohranjamo takšno, kakršna je.

3) Ta metoda nastavi TutorialID in TutorialName na podlagi parametrov pID in pName.

4) Tu spremenimo razred, kjer dodamo novo metodo z istim imenom SetTutorial. Samo tokrat posredujemo samo en parameter, ki je ime pName. Pri tej metodi samo nastavimo polje TutorialName na pName.

2. korak) Zadnji korak je sprememba naše glavne datoteke Program.cs. V naši konzolni aplikaciji bomo naredili objekt razreda 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();}}}

Pojasnilo kode: -

  1. V prvem koraku uporabljamo metodo SetTutorial z dvema parametroma. Kjer tej metodi posredujemo TutorialID in TutorialName.
  2. V drugem koraku zdaj prikličemo metodo SetTutorial z enim samim parametrom. TutorialName samo prenašamo na to metodo.

Če je zgornja koda pravilno vnesena in se program zažene, se prikaže naslednji izhod. Če želite tudi ID vadnice pridobiti skupaj z imenom vadnice, sledite spodnjemu koraku

  1. Ustvarite ločeno metodo, imenovano public int GetTutorialID
  2. V tej metodi napišite kodno vrstico "return TutorialID." S tem lahko vrnete TutorialID klicnemu programu.

Izhod:

Iz rezultata lahko jasno razberemo, da sta bili obe metodi uspešno poklicani. Zaradi tega sta bila na konzolo poslana niza "First Tutorial" in "Second Tutorial".

Povzetek

  • Dedovanje je, če podrejeni razred podeduje polja in metode nadrejenega razreda. Otroški razred lahko nato določi tudi svoje metode.
  • Polimorfizem je koncept OOP, kjer ima lahko eno ime več oblik.