C # Abstrakt klasseopplæring: Hva er abstraksjon med eksempel

Innholdsfortegnelse:

Anonim

Hva er abstrakt klasse i C #?

Abstrakt klasse kan aldri instantieres og er preget av nøkkelordet abstrakt. En abstrakt klasse inneholder null eller flere abstrakte metoder i den. Abstrakt klasse fungerer som en basisklasse og er designet for å bli arvet av underklasser som enten implementerer eller enten overstyrer metoden.

La oss lære abstrakt klasse i C # med eksemplet gitt nedenfor. Nedenfor er definisjonen av en klasse som heter 'Animal'. Når dyreklassen er definert, er det ingenting kjent om dyret, enten det er en hund eller en katt. Metoden som kalles beskrivelse er bare en generisk metode som er definert for klassen.

Nå når det er kjent hva dyret kommer til å være, lager vi en annen klasse som arver basisklassen. Hvis vi vet at dyret faktisk er en hund, lager vi hundeklasse som arver hovedbaseklassen. Hovedforskjellen her er at hundeklassen ikke kan endre definisjonen av beskrivelsesmetoden for dyreklassen. Den må definere sin egen C # abstrakte metode kalt Dog-Description. Dette er det grunnleggende konseptet med C # abstrakte klasser.

La oss se abstrakt klasse i C # med sanntidseksempel på hvordan vi kan endre koden vår til å inkludere en C # abstrakt klasse. Merk at vi ikke kjører koden, fordi det ikke er noe som kan kjøres ved hjelp av en C # abstraksjonsklasse.

Trinn 1) Som et første trinn, la oss lage en abstrakt klasse. Klassen vil hete Tutorial og vil bare ha en metode. All koden må skrives i Program.cs-filen.

Kode Forklaring: -

  1. Vi definerer først den abstrakte klassen. Legg merke til bruken av det abstrakte nøkkelordet. Dette brukes til å betegne at klassen er en abstrakt klasse.
  2. Deretter definerer vi metoden vår som ikke gjør noe. Metoden må ha nøkkelordet kalt virtuelt. Dette betyr at metoden ikke kan endres av barneklassen. Dette er et grunnleggende krav for enhver abstrakt klasse.

Trinn 2) La oss nå legge til barneklassen vår. Denne koden legges til i Program.cs-filen.

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

Det er ikke noe eksepsjonelt ved denne koden. Vi definerer bare en klasse som heter 'Guru99Tutorial' som arver den abstrakte tutorial-klassen. Vi definerer deretter de samme metodene som vi har brukt fra før.

Merk: Her kan vi ikke endre definisjonen av Set-metoden som ble definert i Tutorial-klassen. I veiledningsklassen hadde vi definert en metode som heter 'Set' (offentlig virtuelt ugyldig Set ()). Siden metoden var en del av den abstrakte klassen C #, har vi ikke lov til å definere Set-metoden igjen i Guru99Tutorial-klassen.

Sammendrag

  • En abstrakt klasse i C skarp er en basisklasse som har de helt grunnleggende kravene til hvordan en klasse skal se ut. Det er ikke mulig for barneklassen å arve baseklassens metoder.