Introduktion til arv i C #

Arv i C # er processen med at erhverve alle egenskaberne for en klasse til en anden klasse. Der er to klasser kaldet baseklasse og afledt klasse. Basisklassen kaldes også forældreklasse og egenskaberne eller metoderne for denne klasse, vi ønsker at arve til en anden klasse.

Den afledte klasse er kendt som barneklasse, der bruges til at arve egenskaberne og metoderne for baseklassen eller forældreklassen. Det hjælper med at genbruge den samme kode igen og behøver ikke at definere de samme egenskaber igen og igen.

Arv er et af de magtfulde koncepter eller grundlæggende egenskaber ved objektorienteret programmeringssprog. Det bruges i vid udstrækning på alle OOP-baserede programmeringssprog. Dets hovedformål er at bruge den samme kode igen. Eksemplet med den grundlæggende arvstruktur er givet nedenfor:

class BaseClass ( )
class ChildClass: BaseClass ()

Arvstyper i C #

Der er forskellige typer arv i C #:

1. Arv på enkelt niveau

I en enkelt arv er der kun en baseklasse og en afledt klasse. Det betyder, at barneklassen arver egenskaberne for forældreklassen og bruger den.

Eksempel:
class BaseClass
(
public void hello()
(
Console.WriteLine("Parent's Hello Method");
)
)
class ChildClass : BaseClass
(
public void World()
(
Console.WriteLine("Child's World Method");
)
)

2. Arvelivelse på flere niveauer

I denne arvtype er der kun en baseklasse, og flere afledte klasser er tilgængelige. Hvis en klasse oprettes ved hjælp af en anden afledt klasse, kaldes multilevel arv.

Eksempel:

class BaseClass
(
public void hello()
(
Console.WriteLine("Parent's Hello Method");
)
)
class ChildClass : BaseClass
(
public void World()
(
Console.WriteLine("Child's World Method");
)
)
class SecondChildClass : ChildClass
(
public void Hi()
(
)
)

3. Multiple arv

I denne arvtype kan dette opnås ved hjælp af flere grænseflader, ikke med en klasse. Med enkle ord understøtter C # ikke flere arv, men hvis du vil opnå det, kan det kun opnås ved hjælp af grænseflader.

Eksempel:

Interface A ()
Interface B ()
Class C: A, B ()

4. Hierarkisk arv

I denne arvtype er der en forældreklasse, og de andre afledte klasser arver den samme forældreklasse for at opnå denne arv.

Eksempel :

class BaseClass
(
public void hello()
(
Console.WriteLine("Parent's Hello Method");
)
)
class ChildClass : BaseClass
(
public void World()
(
Console.WriteLine("Child's World Method");
)
)
class SecondChildClass : BaseClass
(
public void Hi()
(
)
)

Fordele ved arv

Fordelene ved arv er:

  • Det hjælper med at bruge den samme kode igen betyder kode genanvendelighed.
  • Det reducerer kodeadundans.
  • Det hjælper med at læse koden mere komfortabelt.
  • Det reducerer også størrelsen på kildekoden og filen.
  • Det hjælper med at give koden udvidbarhed.
  • Koden er let at administrere, da den er opdelt i klasser i baseklassen og underklassen.
  • Der er ikke adgang til private medlemmer i afledt klasse, når baseklassemedlemmer er arvet af den afledte klasse.
  • Det understøtter ikke flere arv, men kan opnås gennem grænseflader.
  • Det hjælper med at opnå den polymorfisme, der tillader et objekt at repræsentere mere end en type.
  • Det hjælper med at opdele den store kode i små stykker.

Egenskaber ved arv

Funktionerne ved Arv er:

  • Arv kan bruges til at forhindre direkte øjeblikkelighed af klassen, og for at opnå dette abstrakte nøgleord er blevet brugt.
  • Medlemmerne af baseklassen kan fås i afledt klasse undtagen for private nøglemedlemmer.
  • Medlemmerne af baseklassen kan også arves i afledt klasse undtagen konstruktør og destruktør.
  • I C # skal de virtuelle metoder i en baseklasse bruge overskydende nøgleord i den afledte klasse.
  • I C # for at forhindre arv fra den klasse, der kan erklæres med det forseglede nøgleord.
  • Hvis de arvede medlemmer skal skjules med samme navn og underskrift i den afledte klasse, skal denne metode defineres med det nye nøgleord.

Hvorfor bruge arv og hvordan det gør det let at arbejde?

Arv bruges, når den samme kode skal bruges i en anden klasse. Så i stedet for at skrive den samme kode, igen og igen, er der et koncept med objektorienteret programmering, der er arv, der hjælper med at bruge den samme funktionalitet som metoder eller egenskaber i en klasse til en anden klasse. Ved hjælp af semikolon (:) kan vi arve medlemmerne af baseklassen til barneklasse eller afledt klasse.

Det gør det nemt at arbejde på, fordi det hjælper med at undgå forvirring af metodekald, fra hvilken klassemetoden bliver kaldt. Det gør koden genanvendelig og gør filen lettere i vægt med mindre antal kildekodelinjer. Dette gør koden mindre overflødig og mere fleksibel at bruge i forskellige klasser. Det holder strukturen i programmet, der hjælper med at læse koden let.

Konklusion - Arv i C #

  • Arv er det mest udbredte koncept med objektorienteret programmering i alle OOP-baserede sprog og så som i C #. Det hjælper udvikleren med at opnå mange ting og gør koden glattere og læsbar.
  • Polymorfisme er det andet oops-koncept, der kun kan opnås ved hjælp af arv. De fleste af problemerne er løst med disse to begreber, der går hånd i hånd.
  • I arv er baseklassen og den afledte klasse tæt koblet, som om der er ændringer i baseklassen, så påvirkes automatisk alle børneklasser. Arv skal bruges meget omhyggeligt, som om datamedlemmerne ikke bruges korrekt, og hukommelsen tildeles dem, da påvirker det applikationens ydelse.
  • Der er forskellige niveauer af arv, der bruges til programmering eller udvikling af en applikation. Det kan implementeres i alle typer applikationer, f.eks. Webbaserede eller desktopbaserede applikationer. Det afhænger af udvikleren, hvordan og hvor man skal bruge arv, da det giver en masse fleksibilitet, funktioner og hjælper med at opnå tingene.

Anbefalede artikler

Dette har været en guide til arv i C #. Her diskuterede vi introduktion, typer, fordele og funktioner i arv i C #. Du kan også gennemgå vores andre foreslåede artikler for at lære mere-

  1. Arv i VB.Net
  2. Hvad er multithreading i C #?
  3. C # kommandoer
  4. C # vs JavaScript
  5. Arv i Java
  6. Metoder til multithreading i C #

Kategori: