C# abstrakt klasse

C# abstrakt klasse

En abstrakt klasse tar for seg abstraksjonsprosessen. Det er et fenomen der detaljene i enhver metode er skjult, og bare funksjonaliteten vises. Det er ikke en fullstendig implementering. Vi kan ikke instantisere en abstrakt klasse direkte; Det kan opprettes uten å bruke en abstrakt metode. Det elementære formålet med en abstrakt klasse er å tilby en guide for alle de avledede klassene som er arvet av den.

Syntaks for abstrakt klasse:

Abstrakt klasseprøve

Et "abstrakt" nøkkelord brukes til å generere en abstrakt klasse. Mens i tilfelle av en abstrakt funksjon, inneholder den ingen som bare erklærte i klassen. En abstrakt metode brukes inne i det avledede, eller du kan si i alle ikke-abstrakt klasser ved å bruke et nøkkelord 'overstyring'. Ved å bruke dette nøkkelordet er en abstrakt metode ikke i abstraksjonstilstanden; det kan brukes som en vanlig funksjon. En avledet klasse som er barnet i den abstrakte klassen kan overstyre de samme abstrakte metodene.

Syntaksen for en abstrakt metode:

Offentlig abstrakt tomrom SMP ();

Struktur av en abstrakt klasse

En abstrakt klasse brukes mest i arveprosessen. Strukturer kan ikke overstyre noen abstrakt klasse. En abstrakt klasse er ikke for flere arv. Tilsvarende kan en abstrakt klasse ikke erklæres som en statisk klasse, ettersom en statisk klasse ikke kan avledes.

Eksempel 1

For å implementere konseptet med en abstrakt klasse, har vi laget et eksempelprogram. Der vi brukte en klasseprøve med søkeordet. Inne i klassen er det angitt en abstrakt metode. Den abstrakte klassen har alltid en abstrakt metode.

Offentlig abstrakt klasseprøve ()
Offentlig abstrakt tomrom SMP] ();

Ettersom vi bare definerer funksjonaliteten til de abstrakte metodene i den abstrakte klassen, i stedet for å forklare funksjonene til funksjonene, så er bare funksjonen til funksjonen erklært her.

En abstrakt klasse kan ikke nås direkte fordi vi ikke oppretter et objekt av den; Det sies å være en dummy-klasse eller en ikke-aktiv klasse til den blir aktiv ved å lage et objekt av klassen avledet fra den. Så vi vil kjøre klasseprøven1 fra basen Abstract Class. Denne klassen er ikke abstrakt. Eksempelklassen er arvet i barneklasseprøven1. Måten å representere en iboende klasse fra baseklassen er å bruke foreldreklassenavnet med et kolonskilt foran den avledede klassen. Her er Sample1 en avledet klasse.

# Public Class Sample1: Eksempel på

Når vi arver en klasse fra den abstrakte klassen, kan den bruke funksjonene, og metodene som er til stede i den abstrakte klassen. For eksempel kan SMP () -metoden deklareres i Sample1 -klassen, men ikke med navnet Abstract fordi den ikke er en abstrakt klasse lenger. Det er skrevet med nøkkelordet 'overstyring' for å skildre at det er arvet fra en abstrakt klasse. En enkel uttalelse vises i programmet.

# Offentlig overstyring Void SMP ()

Tilsvarende arves en annen klasseprøve2 fra klasseprøven. Og den bruker også overstyringsmetoden SMP (). For å initialisere den abstrakte klassen, vil vi ikke opprette et objekt for den. Men forekomsten av den avledede eller barneklassen vil bli instantiert. Den abstrakte klassen vil automatisk bli aktiv og kan nås enkelt ved å lage objektet.

# Prøver;

'S' er gjenstand for prøveklassen; det er opprettet, men den er ikke instantiert.

# S = Ny prøve1 ()

Denne dynamiske skapelsen vil instantisere klasseprøven1 ved å bruke en 'ny' operatør. Vi får nå tilgang til funksjonen som er erklært i den abstrakte klassen gjennom dette objektet.

Tilsvarende vil det samme objektet for eksemple -klassen opprettes. Og så vil vi kalle funksjonen fra foreldreklassen. Når vi instantiserer objektet for klassen, vil vi bruke det til funksjonssamtalen i neste trinn, og umiddelbart gjøre det spesifisert for funksjonen som brukes inne i klassen.

Lagre koden; Vi vil utføre den i Ubuntu -terminalen, bruke MCS -kompilatoren til å kompilere koden, og mono for å utføre den.

$ MCS -fil.CS
$ mono -fil.EXE

Ved utførelse kan du se at begge verdiene i funksjonene vises.

Eksempel 2

Ved å bruke en abstrakt klasse vil vi nå beregne området. Så det opprettes en abstrakt klasse for området, der en abstrakt metode for området vil bli definert.

Abstrakt klasse områdeklasser
Abstract Public Int Area ();

Et avledet klassesorg vil bli arvet fra baseklassen. Dette vil beregne området ved å bruke den abstrakte metoden inne i det. Først er en variabel erklært å få nummeret fra hovedprogrammet.

# Klassen Square: AreaClass

En konstruktør opprettes for å tildele den sendte verdien fra hovedprogrammet. Da blir funksjonen overstyrt fra den abstrakte klassen. Denne metoden vil beregne området på torget ved å multiplisere begge sider.

Lag en annen klasse for å erklære hovedprogrammet. Her opprettes objektet for barneklassen og vil bli instantiert da vi trenger å sende nummeret til konstruktøren av Square -klassen for å lage objektet.

# Kvadrat s = nytt firkant (15);

Ved å bruke det samme objektet vil funksjonen bli kalt.

s.Område ();

Konsollen vil skrive ut området beregnet av funksjonen.

Eksempel 3

Den abstrakte klassen trenger ikke å inneholde alle abstrakte metoder. Men også ikke-abstrakte metoder kan oppgis i en abstrakt klasse. Vi har brukt eksemplet nedenfor for å utdype dette konseptet. Lag en abstrakt klasse. En enkel funksjon opprettes og er i en fullt funksjonert tilstand, ettersom den godtar parametrene som er sendt til den fra funksjonssamtalen og returnerer summen av begge tallene.

# Public int sum (int num1, int num2)

Etter erklæringen om den vanlige funksjonen er en abstrakt metode definert, men kroppen er ikke erklært her, da det er en abstrakt funksjon.

# Offentlig abstrakt int multiply (int num1, int num2)

Etter den abstrakte klassen vil vi lage en avledet klasse som vil arve den abstrakte funksjonen til multiplikasjon.

Klasse avledet: AbstractClass
Offentlig overstyring Int Multiply (int num1, int num2)

Denne funksjonen vil multiplisere begge verdiene og deretter returnere svaret.

Nå lager vi et hovedprogram for å lage objektet.

Avledet d = ny avledet ();
d.sum (20, 8);
d.multipliser (20, 8);

Konklusjon

En abstrakt klasse i C Sharp opprettes for å skjule informasjonen ved bare å definere funksjonens overskrift. Denne abstrakte klassen er ikke-funksjonell inntil en annen barneklasse er avledet gjennom den. En abstrakt klasse brukes i arv; Ellers er erklæringen om en abstrakt klasse ubrukelig. På grunn av arv får vi tilgang til det ved å opprette og instantisere objektet for barneklassen. Det er ikke obligatorisk at en abstrakt klasse må ha alle abstrakte metoder i den. Vi har forklart arbeid og erklæring om en abstrakt klasse ved å bruke noen eksempler og implementere dem i Ubuntu.