C # Arv & Polymorfisme med eksempler

Innholdsfortegnelse:

Anonim

I denne veiledningen vil du lære-

  • Arv
  • Polymorfisme

Hva er arv i C #?

Arv er et viktig konsept i C #. Arv er et konsept der du definerer foreldreklasser og barneklasser.

Barneklassene arver metoder og egenskaper til foreldreklassen, men samtidig kan de også endre atferden til metodene om nødvendig. Barneklassen kan også definere egne metoder om nødvendig.

Du vil få en bedre forståelse hvis vi ser denne handlingen.

La oss nå se hvordan vi kan innlemme begrepet arv i koden vår.

Trinn 1) Det første trinnet er å endre koden for vår opplæringsklasse. I dette trinnet legger vi til koden nedenfor i Tutorial.cs-filen.

Merk at vi nå må legge til tilgangsmodifikatoren til 'beskyttet' i både TutorialID og TutorialName-feltet.

Husk at vi hadde nevnt denne tilgangsmodifisereren i Access Modifier-opplæringen. Vel her kan du se hensikten med å ha dette. Først når du har denne tilgangsmodifikatoren (beskyttet), kan underordnede klassen bruke feltene i overordnede klassen.

Trinn 2) Det andre trinnet er å legge til vår nye barneklasse. Navnet på denne klassen vil være "Guru99Tutorial". I dette trinnet legger vi til koden nedenfor i Tutorial.cs-filen. Koden skal plasseres etter definisjonen av opplæringsklassen.

Kode Forklaring: -

  1. Det første trinnet er å lage Guru99Tutorial-barneklassen. Vi må også nevne at denne klassen kommer til å være en barneklasse i opplæringsklassen. Dette gjøres med nøkkelordet ':'.
  2. Deretter definerer vi en metode som heter RenameTutorial. Det vil bli brukt til å gi nytt navn til feltet TutorialName. Denne metoden godtar en strengvariabel som inneholder det nye navnet på opplæringen.
  3. Vi tildelte deretter parameteren pNewName til TutorialName-feltet.

    Merk : - Selv om vi ikke har definert TutorialName-feltet i "Guru99Tutorial" -klassen, har vi fortsatt tilgang til dette feltet. Dette er på grunn av det faktum at "Guru99Tutorial" er en barneklasse i Tutorial-klasse. Og fordi vi gjorde feltene i opplæringsklassen som beskyttet, kan de få tilgang til denne klassen.

Trinn 3) Det siste trinnet er å endre vår viktigste Program.cs-fil. I konsollapplikasjonen vår skal vi lage et objekt av Guru99Tutorial-klassen. Med dette objektet skal vi kalle RenameTutorial-metoden. Vi skal deretter vise TutorialName-feltet ved hjelp av 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: -

  1. Det første trinnet er å lage et objekt for Guru99Tutorial-klassen. Dette gjøres via det 'nye' nøkkelordet. Merk at denne gangen lager vi ikke et objekt fra opplæringsklassen.
  2. Vi bruker RenameTutorial-metoden til Guru99Tutorial-klassen for å endre TutorialName-feltet. Vi sender strengen ".Net by Guru99" til RenameTutorial-metoden.
  3. Vi kaller deretter GetTutorial-metoden. Merk at selv om denne metoden ikke er definert i klassen Guru99Tutorial, har vi fortsatt tilgang til denne metoden. Resultatet av GetTutorial-metoden vises deretter til konsollen via Console.WriteLine-metoden.

Hvis den ovennevnte koden er angitt riktig, og programmet er utført vellykket, vises følgende utdata.

Produksjon:

Fra utgangen kan vi tydelig se at TutorialName-feltet ble omdøpt til ".Net by Guru99". Dette ble muliggjort av RenameTutorial-metoden som ble kalt av barneklassen.

Hva er polymorfisme i C #?

Polymorfisme er et OOP-konsept hvor ett navn kan ha mange former.

For eksempel har du en smarttelefon for kommunikasjon. Kommunikasjonsmodusen du velger kan være hva som helst. Det kan være en samtale, en tekstmelding, en bildemelding, e-post osv. Så, målet er vanlig at det er kommunikasjon, men deres tilnærming er annerledes. Dette kalles polymorfisme.

Du vil få en bedre forståelse hvis vi ser denne handlingen.

La oss nå se hvordan vi kan innlemme begrepet polymorfisme i koden vår.

Trinn 1) Det første trinnet er å endre koden for vår opplæringsklasse. I dette trinnet legger vi til koden nedenfor i Tutorial.cs-filen.

Kode Forklaring: -

1 & 2) Det første trinnet er det samme som i våre tidligere eksempler. Vi holder definisjonen av SetTutorial-metoden slik den er.

3) Denne metoden angir opplærings-ID og opplæringsnavn basert på parametrene pID og pName.

4) Det er her vi gjør en endring i klassen vår hvor vi legger til en ny metode med samme navn SetTutorial. Bare denne gangen sender vi bare en parameter som er pName. I denne metoden setter vi bare feltet TutorialName til pName.

Trinn 2) Det siste trinnet er å endre vår viktigste Program.cs-fil. I konsollapplikasjonen vår skal vi lage et objekt av Guru99Tutorial-klassen.

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: -

  1. I det første trinnet bruker vi SetTutorial-metoden med to parametere. Hvor vi sender både TutorialID og TutorialName til denne metoden.
  2. I det andre trinnet kaller vi nå SetTutorial-metoden med bare en parameter. Vi gir bare opplæringsnavnet til denne metoden.

Hvis koden ovenfor er angitt riktig og programmet kjøres, vises følgende utdata. Hvis du i tilfelle du også vil hente opplærings-ID-en sammen med opplæringsnavnet, bør du følge trinnet nedenfor

  1. Lag en egen metode kalt public int GetTutorialID
  2. I denne metoden skriver du kodelinjen "return TutorialID." Dette kan brukes til å returnere TutorialID til anropsprogrammet.

Produksjon:

Fra utgangen kan vi tydelig se at begge metodene ble kalt med hell. På grunn av dette ble strengene "First Tutorial" og "Second Tutorial" sendt til konsollen.

Sammendrag

  • Arv er der en barneklasse arver feltene og metodene til foreldreklassen. Barneklassen kan da også definere egne metoder.
  • Polymorfisme er et OOP-konsept hvor ett navn kan ha mange former.