I denne vejledning lærer du-
- Arv
- Polymorfisme
Hvad er arv i C #?
Arv er et vigtigt begreb i C #. Arv er et koncept, hvor du definerer forældreklasser og barneklasser.
Underordnede klasser arver metoder og egenskaber for overordnede klassen, men på samme tid kan de også ændre metodernes opførsel, hvis det kræves. Barneklassen kan også definere egne metoder, hvis det kræves.
Du får en bedre forståelse, hvis vi ser denne handling.
Lad os nu se, hvordan vi kan indarbejde begrebet arv i vores kode.
Trin 1) Det første trin er at ændre koden til vores Tutorial-klasse. I dette trin tilføjer vi nedenstående kode til Tutorial.cs-filen.
Bemærk, at vi nu skal tilføje adgangsmodifikatoren for 'beskyttet' til både TutorialID og TutorialName-feltet.
Husk, at vi havde nævnt denne adgangsmodifikator i vejledningen om adgangsmodifikator. Nå her kan du se formålet med at have dette. Først når du har denne adgangsmodifikator (beskyttet), kan barneklassen bruge felterne i den overordnede klasse.
Trin 2) Det andet trin er at tilføje vores nye barneklasse. Navnet på denne klasse vil være "Guru99Tutorial". I dette trin tilføjer vi nedenstående kode til Tutorial.cs-filen. Koden skal placeres efter definitionen af selvstudiet.
Kode Forklaring: -
- Det første trin er at oprette Guru99Tutorial-barneklassen. Vi er også nødt til at nævne, at denne klasse bliver en børneklasse i undervisningsundervisningen. Dette gøres med nøgleordet ':'.
- Dernæst definerer vi en metode kaldet RenameTutorial. Det bruges til at omdøbe feltet TutorialName. Denne metode accepterer en strengvariabel, der indeholder det nye navn på vejledningen.
- Vi tildelte derefter parameteren pNewName til feltet TutorialName.
Bemærk : - Selvom vi ikke har defineret feltet TutorialName i klassen "Guru99Tutorial", har vi stadig adgang til dette felt. Dette er på grund af det faktum, at "Guru99Tutorial" er en børneklasse i Tutorial-klasse. Og fordi vi har gjort felterne i Tutorial-klassen beskyttet, kan de få adgang til denne klasse.
Trin 3) Det sidste trin er at ændre vores vigtigste Program.cs-fil. I vores konsolapplikation skal vi gøre et objekt til klassen Guru99Tutorial. Med dette objekt skal vi kalde RenameTutorial-metoden. Vi skal derefter vise feltet TutorialName ved hjælp af GetTutorial-metoden.
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();}}}
Kode Forklaring: -
- Det første trin er at oprette et objekt til klassen Guru99Tutorial. Dette gøres via det 'nye' nøgleord. Bemærk, at denne gang opretter vi ikke et objekt fra klassen Tutorial.
- Vi bruger RenameTutorial-metoden i Guru99Tutorial-klassen til at ændre feltet TutorialName. Vi sender strengen ".Net by Guru99" til RenameTutorial-metoden.
- Vi kalder derefter GetTutorial-metoden. Bemærk, at selvom denne metode ikke er defineret i klassen Guru99Tutorial, er vi stadig i stand til at få adgang til denne metode. Outputtet fra GetTutorial-metoden vises derefter på konsollen via Console.WriteLine-metoden.
Hvis ovenstående kode indtastes korrekt, og programmet udføres med succes, vises følgende output.
Produktion:
Fra output kan vi tydeligt se, at feltet TutorialName blev omdøbt til ". Net af Guru99". Dette blev muliggjort af RenameTutorial-metoden kaldet af barneklassen.
Hvad er polymorfisme i C #?
Polymorfisme er et OOP-koncept, hvor et navn kan have mange former.
For eksempel har du en smartphone til kommunikation. Den kommunikationstilstand, du vælger, kan være hvad som helst. Det kan være et opkald, en tekstbesked, en billedbesked, mail osv. Så målet er fælles, nemlig kommunikation, men deres tilgang er anderledes. Dette kaldes polymorfisme.
Du får en bedre forståelse, hvis vi ser denne handling.
Lad os nu se, hvordan vi kan indarbejde begrebet polymorfisme i vores kode.
Trin 1) Det første trin er at ændre koden til vores Tutorial-klasse. I dette trin tilføjer vi nedenstående kode til Tutorial.cs-filen.
Kode Forklaring: -
1 & 2) Det første trin er det samme som i vores tidligere eksempler. Vi holder definitionen af SetTutorial-metoden som den er.
3) Denne metode indstiller TutorialID og TutorialName baseret på parametrene pID og pName.
4) Det er her, vi foretager en ændring i vores klasse, hvor vi tilføjer en ny metode med samme navn SetTutorial. Kun denne gang sender vi kun en parameter, som er pName. I denne metode sætter vi bare feltet TutorialName til pName.
Trin 2) Det sidste trin er at ændre vores vigtigste Program.cs-fil. I vores konsolapplikation skal vi gøre et objekt til klassen 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();}}}
Kode Forklaring: -
- I det første trin bruger vi SetTutorial-metoden med 2 parametre. Hvor vi sender både TutorialID og TutorialName til denne metode.
- I det andet trin kalder vi nu SetTutorial-metoden med kun en parameter. Vi videregiver bare TutorialName til denne metode.
Hvis ovenstående kode er indtastet korrekt, og programmet køres, vises følgende output. Hvis du også ønsker at hente selvstudie-id'et sammen med vejledningsnavnet, skal du følge nedenstående trin
- Opret en separat metode kaldet public int GetTutorialID
- I denne metode skriv kodelinjen "returner TutorialID." Dette kan bruges til at returnere TutorialID til opkaldsprogrammet.
Produktion:
Fra output kan vi tydeligt se, at begge metoder blev kaldt med succes. På grund af dette blev strengene "First Tutorial" og "Second Tutorial" sendt til konsollen.
Resumé
- Arv er, hvor en barneklasse arver forældreklassens felter og metoder. Børneklassen kan derefter også definere sine egne metoder.
- Polymorfisme er et OOP-koncept, hvor et navn kan have mange former.