C # Abstract klases apmācība: Kas ir abstrakcija ar piemēru

Satura rādītājs:

Anonim

Kas ir abstraktā klase C #?

Abstrakto klasi nekad nevar instantizēt, un to apzīmē ar atslēgvārdu abstrakts. Abstraktā klase satur nulli vai vairāk abstraktu metožu. Abstraktā klase darbojas kā bāzes klase un ir paredzēta mantošanai apakšklasēs, kas vai nu ievieš, vai nu ignorē tās metodi.

Mācīsimies abstrakto klasi C # ar tālāk sniegto piemēru. Zemāk ir definēta klase ar nosaukumu “Dzīvnieks”. Kad ir definēta “Dzīvnieku” klase, par dzīvnieku nav zināms nekas, neatkarīgi no tā, vai tas ir suns vai kaķis. Metode, ko sauc par aprakstu, ir tikai vispārīga metode, kas definēta klasei.

Kad ir zināms, kas tieši būs Dzīvnieks, mēs izveidojam vēl vienu klasi, kas pārņem pamatklasi. Ja mēs zinām, ka dzīvnieks patiesībā ir suns, mēs izveidojam suņu klasi, kas pārņem galveno pamatklasi. Galvenā atšķirība šeit ir tā, ka Suņu klase nevar mainīt Dzīvnieku klases aprakstīšanas metodes definīciju. Tam ir jādefinē sava C # abstraktā metode ar nosaukumu Dog-Description. Tas ir C # abstrakto klašu pamatjēdziens.

Apskatīsim C # abstrakto klasi ar reāllaika piemēru, kā mēs varam mainīt savu kodu, lai iekļautu C # abstrakto klasi. Ņemiet vērā, ka kods nedarbosies, jo neko nevar palaist, izmantojot C # abstrakcijas klasi.

1. solis) Vispirms izveidosim abstraktu klasi. Nodarbība tiks dēvēta par apmācību, un tai būs tikai viena metode. Viss kods ir jāraksta failā Program.cs.

Koda skaidrojums: -

  1. Vispirms mēs definējam abstrakto klasi. Ievērojiet abstrakta atslēgvārda izmantošanu. To lieto, lai apzīmētu, ka klase ir abstrakta klase.
  2. Tālāk mēs definējam savu metodi, kas neko nedara. Metodei ir jābūt atslēgvārdam, ko sauc par virtuālo. Tas nozīmē, ka bērnu klase nevar mainīt metodi. Tā ir pamatprasība jebkurai abstraktai klasei.

2. solis. Tagad pievienosim mūsu bērnu klasi. Šis kods tiek pievienots failam 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();}}}

Šajā kodā nav nekā ārkārtēja. Mēs vienkārši definējam klasi ar nosaukumu “Guru99Tutorial”, kas pārņem abstrakto apmācības klasi. Pēc tam mēs definējam tās pašas metodes, kuras mēs izmantojām no iepriekš.

Piezīme: Šeit mēs nevaram mainīt Set metodes definīciju, kas tika definēta klasē Tutorial. Apmācības klasē mēs bijām definējuši metodi ar nosaukumu “Kopa” (publiskā virtuālā tukšuma kopa ()). Tā kā metode bija daļa no abstraktās klases C #, mums nav atļauts atkārtoti definēt metodi Set klasē Guru99Tutorial.

Kopsavilkums

  • Abstraktā klase C asī ir bāzes klase, kurai ir ļoti pamatprasības, kādai klasei vajadzētu izskatīties. Bērnu klasei nav iespējams mantot pamatklases metodes.