Mis on C # abstraktne klass?
Abstraktset klassi ei saa kunagi instantsida ja see on tähistatud märksõnaga abstraktne. Abstraktne klass sisaldab selles null või rohkem abstraktset meetodit. Abstraktne klass toimib baasklassina ja on mõeldud pärimiseks alamklasside poolt, mis kas rakendavad või alistavad selle meetodi.
Õppigem abstraktset klassi C # allpool toodud näitega. Allpool on klassi määratlus nimega "loom". Kui on määratletud klass „Loom”, pole looma kohta midagi teada, olgu see koer või kass. Kirjeldus nimega kirjeldus on lihtsalt klassi jaoks määratletud üldine meetod.
Nüüd, kui on teada, milline loom täpselt saab olema, loome veel ühe klassi, mis pärib baasklassi. Kui teame, et loom on tegelikult koer, loome koera klassi, mis pärib põhiklassi. Peamine erinevus on selles, et koerte klass ei saa muuta loomaklassi kirjeldusmeetodi määratlust. See peab määratlema oma C # abstraktse meetodi nimega Dog-Description. See on C # abstraktsete klasside põhimõiste.
Vaatame C # abstraktset klassi koos reaalajas näitega selle kohta, kuidas saame oma koodi muuta C # abstraktse klassi lisamiseks. Pange tähele, et me ei käivita koodi, sest C # abstraktsiooniklassi abil pole võimalik midagi käivitada.
1. samm) loome esimese sammuna abstraktse klassi. Tund kannab nime Õpetus ja sellel on lihtsalt üks meetod. Kogu kood tuleb kirjutada faili Program.cs.
Koodi selgitus: -
- Kõigepealt määratleme abstraktse klassi. Pange tähele abstraktse märksõna kasutamist. Seda kasutatakse tähistamaks, et klass on abstraktne klass.
- Järgmisena määratleme oma meetodi, mis ei tee midagi. Meetodil peab olema märksõna nimega virtuaalne. See tähendab, et lasteklass ei saa meetodit muuta. See on iga abstraktse klassi põhinõue.
2. samm) Lisame nüüd oma lasteklass. See kood lisatakse failile 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();}}}
Selles koodis pole midagi erandlikku. Me määratleme lihtsalt klassi nimega 'Guru99Tutorial', mis pärib abstraktse klassi Tutorial. Seejärel määratleme samad meetodid, mida oleme varasemalt kasutanud.
Märkus. Siin ei saa me muuta meetodi Set määratlust, mis määrati klassis Õpetus. Tunnis Tutorial olime määranud meetodi nimega 'Set' (avalik virtuaalne void Set ()). Kuna meetod oli osa abstraktsest klassist C #, ei ole meil lubatud määratleda meetodit Set uuesti klassis Guru99Tutorial.