C# pärimine ja polümorfism programminäidetega

Mis on pärimine C#-s?

Pärisosa on C# oluline mõiste. Pärand on mõiste, milles määratlete vanem- ja alamklassid. Alamklassid pärivad ülemklassi meetodeid ja omadusi, kuid samal ajal saavad nad vajadusel ka meetodite käitumist muuta. Alamklass saab vajaduse korral määrata ka oma meetodid.

Saame C# pärandist paremini aru programminäite abil:

C# pärimise näide

Vaatame nüüd, kuidas saaksime oma koodi kaasata pärimise mõiste.

Step 1) Esimene samm on meie Tutorial klassi koodi muutmine. Selles etapis lisame faili Tutorial.cs alloleva koodi.

C# pärimise näide

Pange tähele, et peame nüüd lisama juurdepääsu modifikaatori 'protected' nii väljale TutorialID kui ka TutorialName.

Pidage meeles, et mainisime seda juurdepääsu modifikaatorit Access Modifieri õpetuses. Noh, siin näete selle eesmärki. Ainult siis, kui teil on see juurdepääsumuutja (kaitstud), saab alamklass kasutada ülemklassi välju.

Step 2) Teine samm on meie uue lasteklassi lisamine. Selle klassi nimi saab olema “Guru99Tutorial”. Selles etapis lisame faili Tutorial.cs alloleva koodi. Kood tuleks paigutada klassi Tutorial määratluse järele.

C# pärimise näide

Koodi selgitus: -

  1. Esimene samm on luua Guru99Tutorial lasteklass. Peame ka mainima, et sellest klassist saab Tutorial klassi lasteklass. Seda teeb märksõna ':'.
  2. Järgmisena määratleme meetodi nimega RenameTutorial. Seda kasutatakse välja TutorialName ümbernimetamiseks. See meetod aktsepteerib stringi muutujat, mis sisaldab õpetuse uut nime.
  3. Seejärel määrasime väljale TutorialName parameetri pNewName.
    märkused: – Kuigi me pole klassis “Guru99Tutorial” määratlenud välja TutorialName, pääseme sellele väljale siiski juurde. Selle põhjuseks on asjaolu, et “Guru99Tutorial” on Tutorial klassi lasteklass. Ja kuna muutsime klassi Tutorial väljad kaitstuks, pääseb see klass neile juurde.

Step 3) Viimane samm on meie peamise faili Program.cs muutmine. Oma konsoolirakenduses teeme Guru99Tutorial klassi objekti. Selle objektiga kutsume välja RenameTutorial meetodi. Seejärel kuvame GetTutorial meetodi abil välja TutorialName.

C# pärimise näide

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

Koodi selgitus: -

  1. Esimene samm on luua objekt Guru99Tutorial klassi jaoks. Seda tehakse märksõna "uus" kaudu. Pange tähele, et seekord me ei loo Tutorial klassi objekti.
  2. Kasutame välja TutorialName muutmiseks klassi Guru99Tutorial meetodit RenameTutorial. Me edastame stringi ".Net by Guru99" meetodile RenameTutorial.
  3. Seejärel kutsume meetodit GetTutorial. Pange tähele, et kuigi seda meetodit pole klassis Guru99Tutorial defineeritud, pääseme sellele meetodile siiski juurde. Seejärel kuvatakse meetodi GetTutorial väljund konsooli Console.WriteLine meetodi kaudu.

Kui ülaltoodud kood on õigesti sisestatud ja programm on edukalt käivitatud, kuvatakse järgmine väljund.

Väljund:

C# pärimise näide

Väljundist näeme selgelt, et välja TutorialName nimetati ümber ".Net by Guru99". Selle tegi võimalikuks alamklassi kutsutud meetod RenameTutorial.

Mis on C# polümorfism?

Polümorfism C#-s on OOP-i kontseptsioon, kus ühel nimel võib olla mitu vormi. Näiteks on teil suhtlemiseks nutitelefon. Teie valitud suhtlusviis võib olla ükskõik milline. See võib olla kõne, tekstisõnum, piltsõnum, kiri jne. Seega on eesmärk ühine ehk suhtlus, kuid nende lähenemine on erinev. Seda nimetatakse polümorfismiks.

Saate C# polümorfismist paremini mõista alloleva programmi näite abil:

C# polümorfismi näide

Vaatame nüüd, kuidas saame polümorfismi kontseptsiooni oma koodi lisada.

Step 1) Esimene samm on meie Tutorial klassi koodi muutmine. Selles etapis lisame faili Tutorial.cs alloleva koodi.

C# polümorfismi näide

Koodi selgitus: -

1 ja 2) Esimene samm on sama, mis meie varasemates näidetes. Säilitame SetTutoriali meetodi määratluse, nagu see on.

3) See meetod määrab TutorialID ja TutorialName parameetrite pID ja pName alusel.

4) Siin teeme oma klassis muudatuse, lisades uue meetodi sama nimega SetTutorial. Ainult seekord edastame ainult ühe parameetri, milleks on pName. Selle meetodi puhul seame lihtsalt välja TutorialName väärtuseks pName.

Step 2) Viimane samm on meie peamise faili Program.cs muutmine. Oma konsoolirakenduses teeme Guru99Tutorial klassi objekti.

C# polümorfismi näide

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

Koodi selgitus: -

  1. Esimeses etapis kasutame meetodit SetTutorial 2 parameetriga. Kui me sellele meetodile edastame nii TutorialID kui ka TutorialName.
  2. Teises etapis kutsume nüüd SetTutorial meetodit ainult ühe parameetriga. Me anname sellele meetodile lihtsalt õpetuse nime.

Kui ülaltoodud kood on õigesti sisestatud ja programm käivitatakse, kuvatakse järgmine väljund. Kui soovite tuua ka õpetuse ID koos õpetuse nimega, peaksite järgima allolevat sammu

  1. Looge eraldi meetod nimega public int GetTutorialID
  2. Selle meetodi puhul kirjutage koodirida "return TutorialID". Seda saab kasutada TutorialID tagastamiseks helistavale programmile.

Väljund:

C# polümorfismi näide

Väljundist näeme selgelt, et mõlemad meetodid kutsuti edukalt välja. Seetõttu saadeti konsooli stringid “First Tutorial” ja “Second Tutorial”.

kokkuvõte

  • Pärimine on koht, kus alamklass pärib ülemklassi väljad ja meetodid. Seejärel saab ka lapsklass oma meetodid defineerida.
  • Polümorfism sisse C# on OOP-i kontseptsioon, kus ühel nimel võib olla mitu vormi.