C # Vadnica za abstraktne razrede: Kaj je abstrakcija s primerom

Kazalo:

Anonim

Kaj je abstraktni razred v jeziku C #?

Povzetka razreda nikoli ni mogoče ustvariti in ga označi ključna beseda abstract. Abstraktni razred vsebuje nič ali več abstraktnih metod. Abstraktni razred deluje kot osnovni razred in je zasnovan tako, da ga podedujejo podrazredi, ki bodisi izvajajo bodisi preglasijo njegovo metodo.

Naučimo se abstraktnega predavanja v jeziku C # s spodnjim primerom. Spodaj je definicija razreda, imenovanega "Žival". Ko je opredeljen razred "Žival", o živalih ni nič znanega, ne glede na to, ali gre za psa ali mačko. Metoda, imenovana opis, je le splošna metoda, definirana za razred.

Zdaj, ko se ve, kaj točno bo Animal, ustvarimo še en razred, ki podeduje osnovni razred. Če vemo, da je žival v resnici pes, ustvarimo razred psov, ki podeduje glavni osnovni razred. Tu je ključna razlika v tem, da razred Dog ne more spremeniti definicije metode Opis razreda Animal. Določiti mora svojo lastno abstraktno metodo C #, imenovano Dog-Description. To je osnovni koncept abstraktnih razredov C #.

Oglejmo si abstraktni razred v C # s primerom v realnem času, kako lahko spremenimo kodo tako, da vključuje abstraktni razred C #. Upoštevajte, da kode ne bomo izvajali, ker ni mogoče zagnati ničesar s pomočjo razreda abstrakcije C #.

Korak 1) Najprej ustvarimo abstraktni razred. Predavanje se bo imenovalo Vadnica in bo imelo samo eno metodo. Vsa koda mora biti zapisana v datoteki Program.cs.

Pojasnilo kode: -

  1. Najprej definiramo abstraktni razred. Upoštevajte uporabo abstraktne ključne besede. S tem se označuje, da je razred abstraktni razred.
  2. Nato definiramo svojo metodo, ki ne naredi ničesar. Metoda mora imeti ključno besedo, imenovano virtual. To pomeni, da podrejeni razred ne more spremeniti metode. To je osnovna zahteva za kateri koli abstraktni razred.

Korak 2) Zdaj pa dodajte svoj otroški razred. Ta koda je dodana v datoteko Program.cs.

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{abstract class Tutorial{public virtual void Set(){}}class Guru99Tutorial:Tutorial{protected int TutorialID;protected string TutorialName;public void SetTutorial(int pID,string pName){TutorialID=pID;TutorialName=pName;}public String GetTutorial(){return TutorialName;}static void Main(string[] args){Guru99Tutorial pTutor=new Guru99Tutorial();pTutor.SetTutorial(1,".Net");Console.WriteLine(pTutor.GetTutorial());Console.ReadKey();}}}

Pri tej kodi ni nič izjemnega. Pravkar definiramo razred, imenovan "Guru99Tutorial", ki podeduje abstraktni razred Tutorial. Nato določimo enake metode, kot smo jih uporabljali od prej.

Opomba: Tu ne moremo spremeniti definicije metode Set, ki je bila definirana v razredu Vadnica. V razredu Vadnica smo definirali metodo, imenovano 'Set' (javni virtualni void Set ()). Ker je bila metoda del abstraktnega razreda C #, v razredu Guru99Tutorial ne smemo znova definirati metode Set.

Povzetek

  • Abstraktni razred v ostrini C je osnovni razred, ki ima zelo osnovne zahteve, kako bi moral biti razred. Podrejeni razred ni mogel podedovati metod osnovnega razreda.